强参数未保存在数据库中

时间:2013-10-30 20:50:58

标签: ruby-on-rails ruby ruby-on-rails-4 strong-parameters

Rails新手问。我无法找到为什么我的强参数没有保存在数据库中的原因。我没有使用脚手架来创建我的模型,而是使用rails g model客户名称:string email:string命令。使用rails console时会添加相同内容。

My customer.rb
class Customer < ActiveRecord::Base
    has_many :products,through: :order
end

我的用户控制器

class UserController < ApplicationController

  def login
    @Customer=Customer.new(master)
    @Customer.save
  end

  def home
  end

  private

  def master
    params.require(:customer).permit!
  end
end

my html code:
<form action="login">
    name <input type="text" name="customer[name]">
    email<input type="email" name="customer[email]">
    <input type="submit" value="enter">
</form>

我仍然收到 param:找不到客户

的错误

2 个答案:

答案 0 :(得分:0)

@Customer=Customer.new(master)
@Customer.save

应该是

@customer=Customer.new(master)
@customer.save

如果你想我可以粘贴我正在处理的应用程序中的一个控制器的等效行。 皮尔

答案 1 :(得分:0)

作为answer of user1854802的补充,你还应该另外看一下params

使用#permit!方法,您可以进行质量分配。因此,将允许params哈希中给出的任何参数。使用#permit(不使用爆炸!)方法来过滤params中要允许的属性。例如:

params.require(:customer).permit(:name, :email)

这样可以确保customer中存在参数params,并且只允许email的{​​{1}}和name属性。