我一直在与option_groups_from_collection_for_select
合作,并且没有看到一种方法在绑定到模型的表单上使用它而不对选择标记进行硬编码。虽然我只在Rails工作了几个星期,但似乎有更好的方法(例如。collection_select
甚至select
)。
是否存在“Rails方式”以避免硬编码<选择>使用option_groups_from_collection_for_select
时标记?
我的观点中的代码(网站has_many类别,我正在尝试按网站对我的列表进行分组)
<select id="item_category_id" name="item[category_id]">
<%= option_groups_from_collection_for_select(Site.all, :categories, :name, :id, :name, @item.category_id) %>
</select>
答案 0 :(得分:3)
您是否正在使用form_for中的对象?如果是这样,这会产生你需要的东西:
form_for @item do |f|
f.grouped_collection_select(:category_id, Site.all, :categories, :name, :id, :name, :include_blank => true)
end
或没有form_for
grouped_collection_select(:item, :category_id, Site.all, :categories, :name, :id, :name, :include_blank => true)
对等
答案 1 :(得分:2)
尝试select_tag而不是select,例如
答案 2 :(得分:0)
选择不起作用?
<%= select :item, :category_id, option_groups_from_collection_for_select(Site.all, :categories, :name, :id, :name, @item.category_id) %>