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:找不到客户
的错误答案 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
属性。