0

componentsメイン コンテナ モデルに属するモデルがあります。componentsモデルには多くのとserversがありservicesます。私のコントローラーではfields_for、次のコードで

@reference.components.build.servers.build
@reference.components.build.services.build

複数のフォームを取得する理由は明らかですhas_many。1 行で関係を構築する方法はありますか? 私が試してみました:

@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です。そうしないと、呼び出しごとに 1 つのコンポーネントを追加してビルドすることになります

例えば

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

正常に動作するはずです。あなたがたまたま見つけたブロックフォームは同じことを達成しています (それは 3.2 で追加されただけで、おそらく 3.2 の後のマイナーリリースの 1 つだと思います)。

于 2012-05-14T15:31:24.843 に答える