我有一个属于主容器模型的模型components
。 components
模型包含许多servers
和services
。基本上一切都很好,除了它每个都有两个,因为在我的控制器中我使用这个代码设置了fields_for
:
@reference.components.build.servers.build
@reference.components.build.services.build
所以我很清楚为什么我会得到多个表单,有没有办法在一行上建立has_many
关系?我试过了:
@reference.components.build.servers.build.services.build
和
1.times { @reference.components.build.servers.build }
1.times { @reference.components.build.services.build }
谢谢
更新 - >
将代码移动到块中似乎可行(我只是在猜测)
@reference.components.build do |f|
f.servers.build
f.services.build
end
该代码在控制器中。
答案 0 :(得分:1)
关键是只调用components.build
一次,否则你每次调用都要添加一个组件来构建
例如
component = @reference.components.build
component.servers.build
component.services.build
应该可以正常工作。您偶然发现的块形式实现了相同的目标(我感觉这只是在3.2中添加的,可能是3.2之后的一个次要版本)