不工作的领域有很多协会

jas*_*328 2 forms ruby-on-rails associations fields-for ruby-on-rails-4

我目前正在为模型构建表单,并且无法为表单开发相关的模型表单.

我收到的错误:

undefined method `tradie_id' for #<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_TradieCategory:0xd0f9d78>
Run Code Online (Sandbox Code Playgroud)

表单代码如下:

= 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
Run Code Online (Sandbox Code Playgroud)

Tradie模型具有has_many与关系TradieCategory模型和TradieCategory模型具有belongs_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">]
Run Code Online (Sandbox Code Playgroud)

我不知道这有什么不妥.有什么问题,怎么解决这个问题?

dax*_*dax 6

你添加accepts_nested_attributes_for :tradie_categoriesTradie模型吗?