我目前正在为模型构建表单,并且无法为表单开发相关的模型表单。
我收到的错误:
undefined method `tradie_id' for #<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_TradieCategory:0xd0f9d78>
表单代码如下:
= form_for @data[:tradie], url: { action: "update_tradie" } do |tradie|
# This doesn't work
= tradie.fields_for :tradie_categories, @data[:tradie].tradie_categories do |category|
= category.text_field :tradie_id
# However this fields_for does
= tradie.fields_for :tradie_locations, @data[:tradie].tradie_locations do |location|
= location.text_field :address
Tradie
模型与has_many
模型有TradieCategory
关系,TradieCategory
模型与belongs_to
有Tradie
关系。我还确认TradieCategory
有一个字段tradie_id
。
在上面的表单中,@data[:tradie]
等于Tradie
模型的实例。每当我致电tradie_categories
或tradie_locations
时,他们都会调用TradieCategory
和TradieLocation
的相关模型数据。
最后,在我的视图代码中,如果我运行= @data[:tradie].tradie_categories.to_a
,我会在我的html页面上返回
[#<TradieCategory id: 2, tradie_id: 2, category_id: 1, created_at: "2013-09-08 19:50:10", updated_at: "2013-09-08 19:50:10">]
我不知道这有什么不妥。问题是什么?如何解决这个问题?
答案 0 :(得分:6)
您是否在accepts_nested_attributes_for :tradie_categories
型号中添加了Tradie
?