希望这只是一个快速的......
我有一个表单来编辑产品,每个产品都属于一个类别。 在form_for(@product)中,我可以通过以下几种方式填充类别的选择框:
<%= f.select :category_id, Category.find(:all).collect{|c| [c.category, c.id]}, :prompt => "Pick a Category" %>
或:
<%= f.select :category_id, options_from_collection_for_select(Category.find(:all), :id, :category) %>
第一个选项会在编辑产品时记住该类别,第二个选项则不会。 任何人都可以告诉我为什么?有没有办法在这个场景中使用options_from_collection_for_select并让它在编辑时记住该类别?
干杯, 亚当
答案 0 :(得分:4)
Codeglot的答案应该是:
<%= f.collection_select :category_id, Category.all, :id , :name %>
答案 1 :(得分:1)
<%= f.collection_select :category_id, Category, :id , :name %>
确保将:name
更改为您要显示的字段。它可能是:name
或:title
答案 2 :(得分:0)
试试这个:
<%= f.select :category_id, options_from_collection_for_select(Category.find(:all), :id, :category, params[:category_id].to_i) %>