【问题标题】:Fields For Not Working for Has Many Association不为之工作的领域有很多关联
【发布时间】:2013-09-03 15:01:35
【问题描述】:

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

我收到的错误:

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_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">]

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

【问题讨论】:

  • 我想如果你用括号你会明白这里发生了什么- tradie.fields_for(:tradie_categories, @data[:tradie].tradie_categories) do |category|
  • 我了解参数的情况。由于某种原因,我不知道它不起作用。以同样的形式,我还有另一个fields_for,效果很好。
  • 哦,来吧。您收到错误,即在收集时调用了一个方法(应该是 AR 方法)。你能出示其他表格吗?
  • 更新了问题中的代码。
  • .tradie_categories.tradie_locations 的定义是什么?请给代码!

标签: ruby-on-rails forms associations ruby-on-rails-4 fields-for


【解决方案1】:

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

【讨论】:

  • 我做了,但回答者没有给予信任。如果对方不回应,我会给你赏金。
  • 酷。如果他们给出答案,请给他们信任,否则我会很乐意接受赏金!
  • 呃,对不起,伙计。我只记得这件事,赏金到期了。对不起。 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多