0

我有一个components属于主容器模型的模型。该components模型有许多serversservices。基本上一切都很好,除了它从每个中渲染出两个,因为在我的控制器中我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

该代码在控制器中。

4

1 回答 1

1

关键是只调用components.build一次,否则每次调用都会添加一个组件来构建

例如

component = @reference.components.build
component.servers.build
component.services.build

应该可以正常工作。你偶然发现的块形式实现了同样的事情(我感觉这只是在 3.2 中添加的,可能是 3.2 之后的次要版本之一)

于 2012-05-14T15:31:24.843 回答