Ruby on rails 创建时的Rails habtm复选框
是否可以在创建操作上使用habtm复选框 因为:Ruby on rails 创建时的Rails habtm复选框,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 4,是否可以在创建操作上使用habtm复选框 因为: <%= hidden_field_tag "product[size_ids][]", nil %> <% Size.order(:size).each do |size| %> <li> <%= check_box_tag "product[size_ids][]", size.id, Product.size_ids.include?(
<%= hidden_field_tag "product[size_ids][]", nil %>
<% Size.order(:size).each do |size| %>
<li> <%= check_box_tag "product[size_ids][]", size.id, Product.size_ids.include?(size.id), id: dom_id(size) %>
<%= label_tag dom_id(size), size.size %>
</li>
<% end %>
正在更新中,自从被用来创建页面rails吐出
未定义的方法“大小\ ID”#
那么,有没有一种方法可以在创建操作中使用habtm?因为您可能要处理一个项目,您的意思可能是:
@product.sizes_ids
产品
型号与任何尺寸都没有直接关联,只有它的实例有关联。使用集合复选框获取所有带有ID的型号示例:
<%=p.collection_check_boxes :size_ids, Size.all, :id, :size %>
谢谢,但我不明白你的意思。还没有迭代吗?一些助手函数会迭代并生成多个元素,如options\u for\u select
does,但复选框不是这样工作的。您是只允许在此处取消选择,还是希望向用户显示所有选项?向用户显示所有选项。但是,在任何情况下,似乎只是在更新操作中,这需要已经创建的产品。进一步思考后,我认为您在这里有正确的想法,但您在包含逻辑上绊倒了。我据此编辑了我的答案。非常感谢,我确实理解了。只需使用收集复选框,即可获得所有尺寸。