我目前正在为模型构建一个表单,并且在为该表单开发关联的模型表单时遇到了麻烦。
我收到的错误:
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">]
我不知道这有什么问题。有什么问题,我该如何解决?