1

再一次,我有我form_forOrder模型,其中has_many :services, :through => :requests. 这是我如何映射关系的布局:

 __________                               _________
| Customer |                             | Utility |
 ----------                               ---------
   ||   ^                                     /\
   ||   |                                     ||
   \/   |                                     /\
   _______           _________             _________
  | Order | <=====< | Request |  >=====>  | Service | 
   -------           ---------             ---------
                                              \/
                                              ||
                                              \/
                                           _________  
                                          | Company |
                                           ---------

在哪里:

--->                    = belongs_to
===>                    = has_many
<==< join model >==>    = has_many, :through

在我的订单表单上,我想要一Company组代表可用服务的复选框,这样即使复选框由客户正在订购:一家公司提供实用程序,这是一项服务)。UtilityOrderService

我如何在我的表单中实现这一点?


表单视图:

- 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 }
4

1 回答 1

2

HABTM 复选框上有一个 Railscast - 这是一个老歌但很好。我很确定即使使用连接模型它仍然可以工作。

于 2009-11-16T03:25:45.550 回答