这是我在注册时获得的:Unpermitted parameters: password_confirmation
WARNING: Can't mass-assign protected attributes for User: email, password
我已经安装了所有内容,并且我正在尝试第一次设计。我创建了一个模型用户,一切都应该顺利。这是设计第一个用户注册的全新安装。没有更改默认代码。
请帮忙!
问题已解决: 我将attr_accessible添加到了我的user.rb模型
答案 0 :(得分:4)
检查您的用户模型并查看参数是否可访问。
请记住,您不需要为它们命名,IE我的用户模型看起来像设计3和rails 4:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
validate :username, presence: true, uniqueness: true, format: { with: /[a-zA-Z0-9]{4,20}/ }
end
解决方案Rahul所说的没有多大意义,因为这些参数已经被允许在请求上,但在我的情况下,我有一个额外的用户名模型,因此我添加到ApplicationController:
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:account_update) << :username
devise_parameter_sanitizer.for(:sign_up) << :username
end
答案 1 :(得分:1)
在ApplicationController中添加以下内容(如果你有Rails4)
before_filter :update_sanitized_params, if: :devise_controller?
# method to sanitized params for devise user sign up
def update_sanitized_params
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email,:password, :password_confirmation)}
end
有关详细信息,请参阅https://github.com/plataformatec/devise#getting-started“强参数”部分
答案 2 :(得分:0)
如果其他人仍然收到此错误,请检查您的表单网址路径。我已将session_path复制到应该使用registration_path的表单中。
答案 3 :(得分:-1)
我第一次使用Devise GEM(目前正在学习rails)。在我的情况下,我有同样的错误,这是一个路由问题。
问题出在 form_for
观点文件夹的 new.index.html.erb
上 devise/registrations
表单有一个网址: session_path(resource_name)
,但为了工作,它应该指向 registration_path(resource_name)
。
我改变了,现在它正在研究heroku。
This是该文件的链接。
这是heroku上的练习:devise.muga.com.co