2010-10-27 97 views
2

希望这只是一个快速的......两个f.select选项之间的差异

我有一个窗体来编辑产品,每个产品都属于一个类别。 在的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

试试这个:

<%= f.select :category_id, options_from_collection_for_select(Category.find(:all), :id, :category, params[:category_id].to_i) %> 
+0

这不记得编辑任何时候选择什么。我的产品表中有一个category_id,所以有一个外键。而且,正如我的问题中提到的<%= f.select:category_id,Category.find(:all).collect {| c | [c.category,c.id]},:prompt =>“选择一个类别”%>完美地工作。但无法获得任何种类的options_from_collection_for_select工作! – Adam 2010-10-30 10:41:13

1
<%= f.collection_select :category_id, Category, :id , :name %> 

确保更改:name达到要显示的字段。这也可能是:name:title

+0

我改变了:名称为:类别,但我得到一个“未定义的方法'地图'”错误使用此。 – Adam 2010-10-30 10:38:47