我试图允许用户使用设计注册一个名字和姓氏。我已经向用户模型添加了名字和姓氏属性,并在registrations/new.html.erb
页面中为每个属性添加了输入字段。但是当用户尝试注册时,我总是得到这个错误:
ArgumentError在RegistrationsController#创建错误的号码参数(0 for 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>
将[]
改为()
:
def sign_up_params
params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
end
#require
和#permit
是方法调用