Еще раз, у меня есть 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 }