设计 - [:email,:password,:password_confirmation]的未定义方法`stringify_keys':Array

时间:2014-01-16 19:19:20

标签: ruby-on-rails devise

我正在使用Rails 4和设计(3.2.2)。但是,当我尝试注册时,我正在异常

  对于[:email,:password,

未定义的方法`stringify_keys',   :password_confirmation]:阵列

以下是我获得例外的方法。

def build_resource(hash=nil)
  self.resource = resource_class.new_with_session(hash || {}, session)
end

我已检查hash的值是[:email, :password, :password_confirmation],不应该是哈希而不是数组吗?

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

应该是。在默认Devise::RegistrationsController中,create操作中的第一行是

build_resource(sign_up_params)

sign_up_params方法应返回允许的请求参数以进行注册;默认情况下,这些将是emailpasswordpassword_confirmation

您必须更改默认设置。您是否完全更改了允许的参数(例如,通过configure_permitted_parameters中的ApplicationController?)?您是否覆盖了注册控制器上的create操作?您是否覆盖了sign_up_params方法?

需要更多信息才能给出确定的答案,但这些都是值得关注的地方。