【问题标题】:Rails rendering fields_for for a model that multiple has_many relationshipsRails 为具有多个 has_many 关系的模型渲染 fields_for
【发布时间】:2012-05-14 15:08:46
【问题描述】:

我有一个模型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

该代码在控制器中。

【问题讨论】:

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


    【解决方案1】:

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

    例如

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

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

    【讨论】:

    • 非常感谢您的回复。我仍在使用 rails 3.1.3,但感谢您的解决方案。这是有道理的,我知道它是那种我只是不知道如何一口气得到它。我喜欢可变解决方案。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多