Ruby on rails 其他型号带有ckeckbox标签的表格
我是rails新手,只是无法解决这个问题 我有三种型号。订单、产品和行项目。 我想为每种产品准备一份带有复选框的订单。用户选择合适的产品并提交订单 我无法获取表单以创建正确的哈希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
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杰森!你说得对。我不得不改变周围的模型,使其与嵌套属性一起工作。谢谢