私はレールに不慣れで、複雑なフォームのベストプラクティスに行き詰まっています。
3 層の深くネストされたアトリビュート フォームがあります。ユーザー > 受取人 > Gift_profile。
_gift_profile_fields の 1 つのパーシャルを作成して、サイト内の複数のフォームでフィールドを使用し、同じことを繰り返さないようにしたいと考えています。これらは、階層のさまざまなレベルにあります。
これは、has_and_belongs_to_many ギフト プロファイルを持つ Sport という別のモデルとの HABTM 関係の名前を手動で指定する check_box_tag を追加するまでは正常に機能します。
<%= f.label :gender, "Gender" %>
<%= f.select :gender, options_for_select(GiftProfile::GENDERS), :include_blank => true %>
<% for sport in Sport.find(:all) %>
<div>
<%= check_box_tag "recipient[gift_profile_attributes][sport_ids][]", sport.id, @gift_profile.sports.include?(sport) %>
<%= sport.sport %>
</div>
フォームは完全に機能しますが、明らかに受信者フォームでのみ機能します。必要になると思われる他のフォームの場所では機能しません。
"user[recipient_attributes][gift_profile_attributes][sport_ids][]"
すべてのフォームでパーシャルを引き続き使用できるように、これを動的に更新するヘルパーまたは方法はありますか? これを行う最善の方法は check_box_tag ですか、それとも別のレールヘルパーがありますか?
友人は、ヘルパーを使用してコントローラーに応じて名前を生成することを提案しました。