ActionController :: AutMController中的ParameterMissing #create

时间:2013-09-06 16:53:50

标签: ruby-on-rails ruby-on-rails-3

我收到以下错误

param not found: customer

这是我的auth_controller

def create
    @customer = Customer.new(customer_params)
    if @customer.save
      flash[:success] = 'Success';
    else
      flash[:error] = 'Error'
    end
  end

  private
  def customer_params
    params.require(:customer).permit(:username,:email,:password)
  end

这是我的表格

<%= form_for :customer, url: {action: :create} do |f| %>
<%= f.text_field :username,placeholder: 'Username' %>
<%= f.password_field :password,placeholder: 'Password' %>
<%= f.email_field :email,placeholder: 'Email' %>
<input type="submit" value="Register" />

如何解决此错误

2 个答案:

答案 0 :(得分:0)

您引用了:email参数,但未在表单中定义。您的表单已:username两次。您可能希望:emailemail_field类型的字段。

答案 1 :(得分:0)

为什么不在表单中使用Customer类的对象,要么在呈现表单之前初始化@customer对象,要么使用

行动

def action_name
  @customer = Customer.new
end

然后,在表单中使用

<%= form_for @customer, url: {action: :create} do |f| %>

或者,在表单中初始化新对象:

<%= form_for Customer.new, url: {action: :create} do |f| %>