我对解决这个问题感到有点困惑..我不知道这里发生了什么。如果我想要一个新主人(点击按钮重定向到所有者#new)。但它告诉我:password_confirmation未知???
这是我的错误代码:
unknown attribute 'password_confirmation' for Owner.
Extracted source (around line #46):
44
45
46
47
48
49
def create
@owner = Owner.new(owner_params)
if @owner.save!
flash[:notice] = 'You signed up successfully'
flash[:color]= 'valid'
Rails.root: /Users/xxxx/Devel/Devel xxxx/backend
Application Trace | Framework Trace | Full Trace
app/controllers/owners_controller.rb:46:in `create'
Request
Parameters:
{"utf8"=>"✓", "authenticity_token"=>"WDAJLTX6467glOnUDJhNkzbdK2rdg+c8ZA1e2tFWfQnqQm2xLVLj sZEMsvRu3c1i2wYrMh54JzW6YV2GonHYCQ==",
"owner"=>{"name"=>"Daniel",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"},
"commit"=>"Signup"}
这是我的owner_params:
def owner_params
params.require(:owner).permit(:name, :password, :password_confirmation, :token)
end
希望你能帮我快:) 问候,约翰
答案 0 :(得分:1)
根据我的评论,将attr_accessor :password_confirmation
添加到Owner
模型可以解决您的问题。
Class Owner < ActiveRecord::Base
attr_accessor :password_confirmation
...
end
答案 1 :(得分:0)
您正在尝试使用从注册表单中收到的所有参数创建Owner
对象。但是,例如,密钥password_confirmation
和commit
可能与Owner
类中的属性不对应。
您应该过滤发送到new
方法的参数:
@owner = Owner.new(owner_params.slice('name', 'password'))