Ruby on rails 嵌套窗体的另一个体量指定错误
我已经做了10次了,每次我似乎都遇到一些嵌套表单的问题。以下是我所拥有的: 客户端控制器:Ruby on rails 嵌套窗体的另一个体量指定错误,ruby-on-rails,nested-forms,Ruby On Rails,Nested Forms,我已经做了10次了,每次我似乎都遇到一些嵌套表单的问题。以下是我所拥有的: 客户端控制器: def new @client = Client.new @contact = @client.contacts.new @header = "New Client" respond_to do |format| format.html # new.html.erb format.json { render json: @client }
def new
@client = Client.new
@contact = @client.contacts.new
@header = "New Client"
respond_to do |format|
format.html # new.html.erb
format.json { render json: @client }
end
end
客户端类:
class Client < ActiveRecord::Base
## ASSOCIATIONS ##
belongs_to :user
has_many :contacts, :dependent => :destroy
has_many :invoices
## ACCESSIBLE ##
attr_accessible :name, :address_line_one, :address_line_two,
:contacts_attributes
## NESTED ATTRIBUTES ##
accepts_nested_attributes_for :contacts
但我在提交表单时仍会出现以下错误:
= form_for(@client) do |f|
= f.fields_for(@contact) do |contact|
Can't mass-assign protected attributes: contact
和参数:
"client"=>{"name"=>"23",
"contact"=>{"name"=>"asdf",
"email"=>"af@gmail.com"}},
"commit"=>"Save"}
我要做的是:
def new
@client = Client.new
@client.contacts.build
@header = "New Client"
respond_to do |format|
format.html # new.html.erb
format.json { render json: @client }
end
end
以及:
您是否尝试过:contact\u属性并接受:contact的\u嵌套\u属性?我通常发现这是一个命名约定问题,或者db列的名称与模型的名称相同。我不这么认为,因为它是一对多关系。
= form_for(@client) do |f|
= f.fields_for(:contacts) do |contact|