【发布时间】:2010-04-20 15:06:12
【问题描述】:
我正在尝试使用 collection_select 方法创建一个
因此,当我为product 的categories 创建
_product_row.erb(不工作):
My product: <%= product.name %>
<%= collection_select(:product, :category_id, @current_user.categories, :id, :name, options = {:prompt => "-- Select a category --"}) %>
截图:
alt text http://img534.imageshack.us/img534/8929/screenshot20100421at120.png
我发现我可以通过事先声明一个实例变量来使其工作,但这对我来说似乎是一个巨大的黑客攻击。
_product_row.erb(工作):
<% @product_select_tmp = product %>
<%= collection_select(:product_select_tmp, :category_id, @current_user.categories, :id, :name, options = {:prompt => "-- Select a category --"}) %>
截图:
alt text http://img534.imageshack.us/img534/1958/screenshot20100421at120l.png
因为这个部分是迭代产品的集合,我不能只在控制器中声明@product(IOW,除非我遗漏了一些东西,product 必须是这个的局部变量部分)。
那么当使用局部变量调用collection_select时,如何让collection_select选择合适的项目呢?
【问题讨论】:
标签: ruby-on-rails form-helpers