再一次,我有我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 }