2

新しい Rails リリース候補でネストされたモデル フォームを使用しようとしています。私はこれを持っていますが、既存の関連付けられた各写真オブジェクトのフォーム フィールドのみをレンダリングします。

f(親モデル オブジェクト用に作成されたフォーム ビルダーがあるとします)

%h3 Photos

- f.fields_for :photos do |photo_form|
  %p
    = photo_form.label :caption
    = photo_form.text_field :caption

  %p
    = photo_form.label :image_file
    = photo_form.file_field :image_file

このネストされたフォーム機能を使用して、新しい写真オブジェクト用のフォームのセクションを作成したり、既存の写真を編集するにはどうすればよいですか?

4

1 に答える 1

3

関連付けられたオブジェクトは、フォームにレンダリングするためにメモリ内に存在する必要があるだけで、保存する必要はありません。したがって、フォームをレンダリングする前にそれらを構築できます!

たとえば、コントローラーで次のことができます。

def new
  @object = MyObject.new
  3.times { @object.build_associated_object }
end

フォームがレンダリングされると、フォームを表示する 3 つのオブジェクトが表示されます。それが最も簡単な方法です。もちろん、JavaScriptで動的にアイテムを追加することもできます。

于 2009-02-24T13:39:22.240 に答える