関連するモデルを作成するプロセスをユーザーの負担を軽減するために必要な独自のカスタムビューを作成しています。ピースに関連付けられているすべてのモデルを、それらを編集するためのコントロールとともにインラインで表示したいと思います。これは、基本的なフィールドに自分でロールするのは非常に簡単ですがform_filtering_select
、インラインモデルの関連付けにパーシャルを使用したいのですが、これを行うためのドキュメントが見つかりません。
質問する
1546 次
2 に答える
1
ネストされたフォームを使用できます
プロジェクト リーダー メソッドから Project インスタンスの配列を返し、projects_attributes= ライター メソッドに応答する User クラスを考えてみます。
class User
def projects
[@project1, @project2]
end
def projects_attributes=(attributes)
# Process the attributes hash
end
end
fields_for が :projects をコレクションとして正しく識別し、正しいインデックスをフォーム マークアップに設定するには、projects_attributes= writer メソッドが実際に必要であることに注意してください。
プロジェクトがすでに User の関連付けになっている場合は、accepts_nested_attributes_for を使用してライター メソッドを定義できます。
class User < ActiveRecord::Base
has_many :projects
accepts_nested_attributes_for :projects
end
このモデルは、ネストされた fields_for で使用できるようになりました。ネストされた fields_for 呼び出しに指定されたブロックは、コレクション内のインスタンスごとに繰り返されます。
<%= nested_form_for @user do |user_form| %>
...
<%= user_form.fields_for :projects do |project_fields| %>
<% if project_fields.object.active? %>
Name: <%= project_fields.text_field :name %>
<% end %>
<% end %>
...
<% end %>
詳細については、リファレンスを参照してください。
于 2015-05-05T07:23:47.477 に答える