0

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

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>

我仍然收到参数错误:找不到客户

4

2 回答 2

0

线条

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

应该

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

如果您愿意,我可以从我正在处理的应用程序中的一个控制器粘贴等效行。皮埃尔

于 2013-10-30T22:24:02.543 回答
0

作为user1854802 答案的补充,您还应该再看看params.

使用#permit!您允许批量分配的方法。因此,哈希中给出的任何参数params都将被允许。使用#permit(不带 bang !)方法来过滤您想要在params. 例如:

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

这确保参数customer存在,params并且只允许email和的name属性customer

于 2013-10-31T00:11:06.610 回答