2013-05-17 48 views
20

我使用的設計進行用戶驗證但是,當用戶嘗試創建我收到此錯誤的帳戶:NameError(未定義的局部變量或方法`devise_parameter_sanitizer」

NameError (undefined local variable or method `devise_parameter_sanitizer' 

這是我的色器件註冊控制器看起來像:提前

def sign_up_params 
devise_parameter_sanitizer.for(:sign_up) 
end 

任何想法

感謝

+6

是的我得到了同樣的行爲,你有沒有找到解決辦法? –

+0

我也遇到了這個問題 –

+0

你可以添加bundle exec gem list輸出 – DazBaldwin

回答

1

撰寫本文時,最新發布的Gem for Devise是2.2.4。這不包括devise_parameter_sanitizer方法,因此您看到的錯誤。

您可能正在按照設計手冊https://github.com/plataformatec/devise。最近添加了Rails 4和Strong Parameters部分。

您有幾種選擇:

  1. 使用捆綁獲取設計的最新高手版,使devise_parameter_sanitizer方法可用:

    gem 'devise', :git => 'git://github.com/plataformatec/devise.git'

  2. 請勿ActiveModel::ForbiddenAttributesProtection到您的用戶模型,甚至沒有使用強參數。更多的信息在這裏:Devise and Strong Parameters

  3. 直接覆蓋所需的設計控制器。在這裏看到:https://gist.github.com/kazpsp/3350730

6

嘗試使用rails4分支

gem 'devise', github: 'plataformatec/devise', branch: 'rails4' 
2

對於任何人誰錯誤在這裏結束了

undefined method `<<' for {}:ActionController::Parameters 

您需要升級到設計3.1.0.rc爲在this comment
這基本上意味着使用主分支版本

gem 'devise', git: 'git://github.com/plataformatec/devise.git' 

希望我幫助一些失去的靈魂,因爲我在過去的半小時。

相關問題