我目前正在为模型构建一个表单,但在为该表单开发关联的模型表单时遇到了问题。
我收到的错误:
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
的关联模型数据。最后,在我的 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/