2011-11-22 28 views
3

加入這行來的色器件/註冊/ new.html.haml文件(視圖)之後:「不能重定向到零」的錯誤添加字段,制定註冊視圖

%div 
    = f.label :account_type 
    %br/ 
    = f.select(:account_type, [["Usertype1","usertype1"],["Usertype2","usertype2"]], {:selected => nil, :prompt => 'Pick One'}) 

我得到以下錯誤點擊確認電子郵件中的確認鏈接後:

ActionController::ActionControllerError in Devise::ConfirmationsController#show 

Cannot redirect to nil! 

如果我選擇在登記時Usertype2它纔會發生。我也做了account_type attr_accessible。 account_type似乎正在分配(我在rails控制檯中檢查過),開發日誌沒有任何進一步的信息。

我認爲這是在色器件確認控制器在發生錯誤的行:

respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource_name, resource) } 

此外,該帳戶被證實,但嘗試登錄時,我得到如下:

undefined method `user_url' for #<Devise::SessionsController:0x9d1659c> 

這是在設計會議控制器的創建操作。

任何幫助,將不勝感激。謝謝!

約翰

回答

5

你提到的兩個錯誤是同一個,基本上是當你簽約,成功設計是無法檢測到哪裏你重定向。當您有多個模型或嘗試在路由文件中設置自定義重定向(登錄後)時,經常會發生此問題。

嘗試在ApplicationController中定義路徑。

設計文檔說的after_sign_in_path_for方法將實際的模型對象(即:被登錄的模型)

def after_sign_in_path_for(resource) 
    signed_in_path_for_user 
end 

注意:您可以爲多個設計路徑做同樣/變量(覆蓋它們) 。關於在同一個應用程序中爲多個Devise模型做更多的信息,你可以看看this question,這是答案。