Une fois de plus, j'ai mes form_for
pour mon modèle Order
, qui has_many :services, :through => :requests
. Voici la mise en page de la façon dont j'ai mes relations cartographié:RoR: cases à cocher dans form_for pour has_many,: à travers avec un modèle Join
__________ _________
| Customer | | Utility |
---------- ---------
|| ^ /\
|| | ||
\/ | /\
_______ _________ _________
| Order | <=====< | Request | >=====> | Service |
------- --------- ---------
\/
||
\/
_________
| Company |
---------
Où:
---> = belongs_to
===> = has_many
<==< join model >==> = has_many, :through
Sur mon formulaire de commande, je veux avoir un tableau de cases à cocher qui représentent les services disponibles, de sorte que même si les cases à cocher sont étiquetées par le Company
et classées par Utility
, le Order
se termine par l'association Service
lorsque la commande est terminée (parce que c'est vraiment ce que le client commande: une société pour fournir un utilitaire, qui est un service).
Comment est-ce que j'accomplis ceci dans mon formulaire?
forme Vue:
- 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'
Où:
@services = Service.all.to_set.classify { |service_item| Utility.find(service_item.utility_id).name }
Si seulement tous les problèmes de la vie pouvaient être résolus par les Railscasts de Ryan Bates ... ce serait la vie. Merci; C'est exactement ce dont j'avais besoin! – neezer