通过注册页面为Devise model User设置自定义属性

时间:2015-08-06 21:09:48

标签: ruby-on-rails devise attributes

我正在尝试允许用户使用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>

我不确定我错在哪里......

1 个答案:

答案 0 :(得分:2)

[]更改为()

def sign_up_params
  params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
end

#require#permit是方法调用。

相关问题