3

我目前正在为模型构建一个表单,并且在为该表单开发关联的模型表单时遇到了麻烦。

我收到的错误:

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模型与TradieCategorybelongs_to关系Tradie。我还验证了TradieCategory有一个字段tradie_id

在上面的表格中,@data[:tradie]等于Tradie模型的实例。每当我打电话tradie_categoriestradie_locations他们正在调用和的相关模型数据TradieCategoryTradieLocation

最后,在我的视图代码中,如果我运行= @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">]

我不知道这有什么问题。有什么问题,我该如何解决?

4

1 回答 1

7

accepts_nested_attributes_for :tradie_categoriesTradie模型中添加了吗?

于 2013-09-15T15:30:02.050 回答