我目前正在为模型构建一个表单,但在为该表单开发关联的模型表单时遇到了问题。

我收到的错误:

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_toTradie 关系。我还验证了 TradieCategory 有一个字段 tradie_id

在上面的表格中,@data[:tradie] 等于 Tradie 模型的实例。每当我调用 tradie_categoriestradie_locations 时,它​​们都会调用 TradieCategoryTradieLocation 的关联模型数据。

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

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

最佳答案

您是否在 accepts_nested_attributes_for :tradie_categories 模型中添加了 Tradie

关于ruby-on-rails - 不工作的领域有很多关联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18595542/

10-10 09:11