ruby-on-rails 學ruby - 如何在Devise中手動創建新用戶和用戶會話?





ruby自學 guides (4)


對於看到這個問題的新人......

一個簡單的方法是在你的

config/routes.rb

你應該有一個類似如下的行:

devise_for :users

所以,你只需要添加一個設計將使用的路徑前綴:

devise_for :users, :path_prefix =>'auth'

希望能幫助到你!

我有一個表單,我在Rails中收集了大量信息。 此表單的一部分是要註冊的新用戶的字段。 由於Devise具有專門用於創建新用戶的控制器/操作,因此我不知道如何以完全不同的操作以編程方式創建用戶,同時創建另一個記錄。 我真的不能將用戶註冊表分開。 我無法弄清楚如何創建用戶,然後記錄用戶,就像我在Authlogic中可以輕鬆做的那樣。

我使用了Authlogic和Devise,並認為每個都有自己的優點和缺點。 有了Devise,我喜歡用新項目“開始”的速度有多快,但定制它似乎很痛苦。 一段時間後,Authlogic對Rails 3有很多問題,我轉而使用Devise。 我現在正在開發一個新項目並從頭開始。

所以我認為這個問題有2個可能的答案:(a)如何在Devise中做到這一點,或者(b)為什麼我應該用Rails 3切換到Authlogic。







在sign_in之前保存新創建的用戶將失敗,因為設計尚未填充用戶對象的必填字段。 因此,David的代碼將適用於當前頁面,但下一頁將無法獲得登錄用戶,因為用戶僅在設置會話後保存。 當我使用Mongoid時會發生這種情況,我不知道它是否是Mongodb特有的問題。

為了解決這個問題,我有一個非常不完美的解決方案,可以兩次調用sign_in。 第一個sign_in將保存用戶。 它只是有效但人們可以肯定地改進它。

@user = User.new(:email => '[email protected]',
                 :password => 'password',
                 :password_confirmation => 'password')
# This will save the user in db with fields for devise
sign_in @user
# :bypass is set to ignore devise related callbacks and only save the
# user into session.
sign_in @user, :bypass => true 



原始帖子可能在2009年已經成為現實,但現在它實際上是不正確的,並且樣式表甚至不需要鏈接,正如我在其他一些響應中所提到的那樣。 Rails現在默認為您執行此操作。

  • 在app / assets / stylesheets中放置任何新工作表.css(或其他)
  • 使用rails-root / scripts / rails服務器測試您的服務器,您將看到鏈接由rails本身添加。

您可以使用瀏覽器中的路徑測試它,例如testserverpath:3000 / assets / filename_to_test.css?body = 1







ruby-on-rails ruby-on-rails-3 authlogic devise