30

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

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

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

* * * UPDATED EFFORTS * * *

我添加了

@price_higher = PriceRange.find(7)

到处理视图的控制器,并添加

, {:selected => @price_higher.value}

在 collection_select 中。它似乎可以解决问题,尽管在 collection_select 中寻找一种不太复杂的方法来完成这一切。

4

3 回答 3

45

添加: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"} %>
于 2012-06-24T04:59:37.850 回答
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"})
于 2019-01-25T12:21:27.107 回答
0
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => @authors.first})

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

于 2018-04-21T21:55:02.930 回答