繰り返しますが、私は自分のモデルに my を持っていform_for
ます。関係をマッピングする方法のレイアウトは次のとおりです。Order
has_many :services, :through => :requests
__________ _________
| Customer | | Utility |
---------- ---------
|| ^ /\
|| | ||
\/ | /\
_______ _________ _________
| Order | <=====< | Request | >=====> | Service |
------- --------- ---------
\/
||
\/
_________
| Company |
---------
どこ:
---> = belongs_to
===> = has_many
<==< join model >==> = has_many, :through
私の注文フォームでは、利用可能なサービスを表すチェックボックスの配列を用意したいと考えています。これにより、チェックボックスが でラベル付けされ、でCompany
分類されていても、注文が完了すると関連付けが終了します(それが本当に顧客が注文する: サービスであるユーティリティを提供する会社)。Utility
Order
Service
私のフォームでこれを達成するにはどうすればよいですか?
フォーム ビュー:
- form_for @order do |order_form|
-# order form inputs, etc.
- order_form.fields_for :customer do |customer_form|
-# customer form inputs
- order_form.fields_for :services do |services_form|
%dl
- @services.each do |service_name, services|
%dt= service_name
- services.each do |service_item|
%dd
=# check_box ??????????
=# label ??????????, Company.find(service_item.company_id).name
%p= order_form.submit 'Create Order'
どこ:
@services = Service.all.to_set.classify { |service_item| Utility.find(service_item.utility_id).name }