的Rails 3.2.5當CURRENT_USER是零,設計2.1軌,設計:覆蓋RegistrationsController
用設計來驗證用戶,並創建一個新用戶時,我有一個問題。
用戶屬於哪個創建在用戶模型使用before_save
濾波器的帳戶。這工作正常,並有一段時間。
新的代碼需要用戶的賬戶信息的創建方法的一部分。我依賴於請求中傳遞的參數,所以這不是模型邏輯的一個好選擇。我已經覆蓋了設計:: RegistrationsController#創建方法:
class DeviseCustom::RegistrationsController < Devise::RegistrationsController
def create
super # Call Devise's create
account = current_user.account # FAIL! (current_user is nil)
account.partner_id = current_partner
account.save!
end
end
current_user
是nil
這將導致代碼失敗。即使在出現故障的情況下,我可以看到用戶和賬戶記錄被在數據庫中保存 - 日誌顯示commit
,並記錄self.inspect
顯示所有我的上下文(參數,可以和更多)是所有仍當下。
我本來以爲會current_user
在這種情況下是可用 - 什麼是適當的方式來獲得在我剛剛創建的用戶?
感謝
是的,'資源'是神奇的。謝謝!我應該只是看着代碼,而不是從記錄器的:-)'current_partner'位可怕self.inspect'輸出'是ApplicationController的方法,我寫做擡頭看即將進行相關的合作伙伴記錄 - 這與Devise無關。我欠你一個人情! – 2012-07-07 00:51:08
不用擔心,夥計!我很高興它工作:) – tehprofessor 2012-07-07 02:17:58