我正在尝试允许用户使用Devise注册名字和姓氏。我已将名字和姓氏属性添加到用户模型,并在registrations/new.html.erb
页面中为每个属性添加输入字段。但是当用户尝试注册时,我不断收到此错误:
RegistrationsController中的ArgumentError#创建错误的数字 参数(0表示1)
def sign_up_params
params.require[:user].permit[:first_name, :last_name, :email, :password, :password_confirmation, :current_password]
end
在它下面:
app/controllers/registrations_controller.rb:6:in `sign_up_params'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"W6fWxCPX6LchBYyNnlzQ+TdmBSWtmzy8JeI/jRPJCiY=",
"user"=>{"first_name"=>"Bill",
"last_name"=>"Burr",
"email"=>"billburr@example.com",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"},
"commit"=>"Sign up"}
这是我的注册控制器的样子:
class RegistrationsController < Devise::RegistrationsController
private
def sign_up_params
params.require[:user].permit[:first_name, :last_name, :email, :password, :password_confirmation, :current_password]
end
def account_update_params
params.require[:user].permit[:first_name, :last_name, :email, :password, :password_confirmation, :current_password]
end
end
这是我的新注册视图:
<div class="col-md-8 col-md-offset-2">
<h2>Sign up</h2>
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :first_name, required: true %>
<%= f.input :last_name, required: true %>
<%= f.input :email, required: true, autofocus: true %>
<%= f.input :password, required: true, hint: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) %>
<%= f.input :password_confirmation, required: true %>
</div>
<div class="form-actions">
<%= f.button :submit, "Sign up" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
</div>
我不确定我错在哪里......
答案 0 :(得分:2)
将[]
更改为()
:
def sign_up_params
params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
end
#require
和#permit
是方法调用。