Ruby on rails 其他型号带有ckeckbox标签的表格

Ruby on rails 其他型号带有ckeckbox标签的表格,ruby-on-rails,Ruby On Rails,我是rails新手,只是无法解决这个问题 我有三种型号。订单、产品和行项目。 我想为每种产品准备一份带有复选框的订单。用户选择合适的产品并提交订单 我无法获取表单以创建正确的哈希 class Order < ActiveRecord::Base attr_accessible :account_id, :user_id has_many :line_items, :dependent => :destroy end class LineItem < ActiveRe

我是rails新手,只是无法解决这个问题

我有三种型号。订单、产品和行项目。 我想为每种产品准备一份带有复选框的订单。用户选择合适的产品并提交订单

我无法获取表单以创建正确的哈希

class Order < ActiveRecord::Base
  attr_accessible :account_id, :user_id

  has_many :line_items, :dependent => :destroy
end

class LineItem < ActiveRecord::Base
  attr_accessible :account_id, :product_id, :order_id

  belongs_to :orders
  belongs_to :product
end
以下是观点:

<%= form_for 'line_items[]' do |f|  %>
   <%= f.select :account_id, options_from_collection_for_select( Account.all, 
       :id, :name ), :prompt => 'Select Account' %>

<% Product.all.each do |product| %>
<div>
       <%= check_box_tag 'line_items[product_ids][]', product.id %>
</div>
<% end -%>

    <div>       
    <%= f.submit 'save' %>
</div>
谢谢

您需要在您的模型中使用accepts_nested_attributes_来启用关联模型中的嵌套属性。你可能还想看看这个,并适应你的需要

例如,在订单模型中:

class Order < ActiveRecord::Base
  attr_accessible :account_id, :user_id

  has_many :products #This makes the association to products
  has_many :line_items, :dependent => :destroy

  accepts_nested_attributes_for :products #This allows the attributes from products accessible
end
那么表格可以是:

<%= form_for @order do |f| %>

  <%= f.select :account_id, options_from_collection_for_select( Account.all, 
       :id, :name ), :prompt => 'Select Account' %>

  <%= f.fields_for :product do |product_form| %>
    <%= product_form.check_box :id  %>
  <% end %>

  <%= f.submit %>
<% end %>

好啊但是1如何在订单视图中加载所有产品进行选择,2如何在有人选择多个产品的情况下生成多个记录?您可以看到,我有一个line_items表,其中包含订单和产品的引用。这有意义吗?1杰森!你说得对。我不得不改变周围的模型,使其与嵌套属性一起工作。谢谢