【发布时间】:2012-07-04 21:54:00
【问题描述】:
这是我的嵌套表单的相关部分:
<div class="field">
<%= f.fields_for "@partcode" do |p|%>
<%= p.label "partcode"%><br />
<%= p.text_field :partcode %>
<% end %>
</div>
我的模型中已经有了这个:
attr_accessible :partcode,
:description
然而,当我在表单中输入内容时,我收到此错误:
Can't mass-assign protected attributes: @partcode
这是我的零件代码模型:
class Partcode < ActiveRecord::Base
attr_accessible :partcode,
:description
validates :partcode,
:description,
:presence => true
belongs_to "goods_ins"
accepts_nested_attributes_for "goods_ins"
end
这是我的商品模型中的所有代码:
class GoodsIn < ActiveRecord::Base
attr_accessible :c4lpono,
:courier,
:deliverydate,
:deliverynoteno,
:description,
:destination,
:notes,
:partcode,
:quantity,
:signedby,
:suppliername
validates :deliverydate,
:deliverynoteno,
:destination,
:quantity,
:signedby,
:suppliername,
:presence => true
has_many :suppliers
has_many :partcodes
accepts_nested_attributes_for :partcodes
end
这也是我的零件代码控制器的new 部分:
def new
@partcode = Partcode.new
respond_to do |format|
format.html # new.html.erb
format.json { render :json => @partcode }
end
end
【问题讨论】:
-
你有没有试过松开
@partcode周围的“”? -
是的,然后它想出了:NilClass:Class的未定义方法`model_name'
-
那么你还没有在你的控制器中实例化
@partcode。尝试在控制器操作中编写:@partcode = Partcode.new(或任何类)。 -
这已经在我的控制器中了..我忘了更深入地解释一下,该表格用于名为goods_in的表,但这个嵌套部分用于名为partcode的表..
-
Ok..
GoodsIn模型的类定义中有以下声明?accepts_nested_attributes_for :partcode。这也是一对一的关系还是一对多的关系?
标签: ruby-on-rails forms nested-forms mass-assignment