我目前正在为模型构建表单,并且在为该表单开发关联的模型表单时遇到问题。
我收到的错误:
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
模型与TradieCategory
模型有has_many
关系,TradieCategory
模型与Tradie
有belongs_to
关系。我还验证了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">]
我不知道这有什么问题。问题是什么,我该如何解决这个问题?
您是否在Tradie
模型中添加了accepts_nested_attributes_for :tradie_categories
?