20

我正在使用设计进行用户身份验证。但是,当用户尝试创建帐户时,我收到此错误:

NameError (undefined local variable or method `devise_parameter_sanitizer' 

这是我的设计注册控制器的样子:

def sign_up_params
devise_parameter_sanitizer.for(:sign_up)
end

有任何想法吗?

提前致谢

4

4 回答 4

6

尝试使用 rails4 分支

gem 'devise', github: 'plataformatec/devise', branch: 'rails4'
于 2013-06-13T21:59:06.633 回答
3

查看 Github 上的设计开放问题,我发现:https ://github.com/plataformatec/devise/issues/2372 - 似乎对我有用。请注意,这可能是 rails 4 问题。

于 2013-05-25T14:23:38.123 回答
2

对于任何最终出现错误的人

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

您需要升级到此评论
中的 Devise 3.1.0.rc, 这基本上意味着使用主分支版本

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

希望我能像过去半小时一样帮助一些迷失的灵魂。

于 2013-08-18T20:08:48.463 回答
1

在撰写本文时,最新发布的 Gem for Devise 是 2.2.4。这不包括该devise_parameter_sanitizer方法,因此您看到的错误。

您可能正在遵循https://github.com/plataformatec/devise上的设计手册。最近添加了关于 Rails 4 和强参数的部分。

你有几个选择:

  1. 使用 bundler 获取最新的 Devise 主版本,使devise_parameter_sanitizer方法可用:

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

  2. 不要应用于ActiveModel::ForbiddenAttributesProtection您的用户模型,因此甚至不使用强参数。更多信息在这里:设计和强大的参数

  3. 直接覆盖所需的设计控制器。见这里:https ://gist.github.com/kazpsp/3350730

于 2013-06-13T21:49:04.460 回答