Rails collection_select默认选项?

时间:2012-06-24 04:55:39

标签: ruby-on-rails-3 collections

所以我正在整理一个集合选择。

<%= collection_select :PriceRange, "7", PriceRange.where('value > 0'), :value, :name %>

我正在尝试将默认选择设为PriceRange,其ID为7,这是独立的,并且不依赖于任何用户设置,它是更改页面上显示的项目的表单的一部分他们的价格范围。

* * * UPDATED EFFORTS * * *

我添加了

@price_higher = PriceRange.find(7)

到处理视图的Controller,并添加了

, {:selected => @price_higher.value}
<_>在collection_select中。它似乎可以解决问题,尽管在collection_select中寻找一种不那么复杂的方法。

3 个答案:

答案 0 :(得分:37)

添加:selected选项。

示例:

collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => "whatever_value"})

示例来自:ApiDock

在你的情况下:

<%= collection_select :PriceRange, "7", PriceRange.where('value > 0'), :value, :name, {:selected => "whatever"} %>

答案 1 :(得分:1)

如果要从数据库中选择默认值,请使用

collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => @authors.first})

如果要提示消息,请使用

collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:prompt => "Select Post"})

答案 2 :(得分:0)

collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => @authors.first})

这可确保值始终来自获取数据的DB,并且可以在数据库更改时更改。