リンク ボックスと多対多の関係があり、それらのモデルを 1 つのフォームにまとめて、同じページから更新できるようにしたいと考えています。配列のすべての要素を表示するために check_box を取得するのに本当に苦労しています。私の問題。また、私は RoR に非常に慣れておらず、少し古いビデオ チュートリアル (2.0 より前) に従っているので、私のコードについてお詫び申し上げます。これまでのところ、配列内の 1 つのキー ペア (最後のキー ペア) のみを出力するようにしました。フォームの外ではありますが、チュートリアルで使用されているコードは、本来の方法で正確に機能します。しかし、それはほとんど役に立ちません!Host はメイン フォームのモデルであり、Billing はフォームに追加しようとしている外部モデルです。
これは、チュートリアルのフォームの外で機能するコードです。
<% for billing in @billings -%>
<%= check_box_tag('billing_title[]', billing.id, @host.billings.collect
{|obj| obj.id}.include?(billing.id))%> <%= billing.title %><br />
<% end -%>
フォーム内で機能させる方法を知る必要があります。これは、ループ処理後に最後の配列キーペアのみを取得する前述のコードです。
<% f.fields_for :billings do |obj| %><br />
<%= check_box_tag('billing_title[]', billing.id, @billings.collect
{|obj| obj.id}.include?(billing.id))%> <%= billing.title %><br />
<% end %>
デバッグ (@billings) :
---
- !ruby/object:Billing
attributes:
title: Every Month
id: "1"
attributes_cache: {}
- !ruby/object:Billing
attributes:
title: 12 Months
id: "2"
attributes_cache: {}
- !ruby/object:Billing
attributes:
title: 6 Months
id: "5"
attributes_cache: {}
どんな助けでも本当に感謝しています。