4

我在视图中使用此代码来创建grouped_collection_select(:query, :city_id, @states, :cities, :name, :id, :name, {:selected => "Chicago"})如下所示的选择:在此处输入图像描述

我想默认选择“芝加哥”。我怎样才能让它工作?

4

3 回答 3

3

嗨,在上面的示例中,您可以通过定义芝加哥的选定键索引来选择“芝加哥”。

这是一个例子:

 @city_group =
                 [
                 ["Wisoncin", [["Lake Geneva", "1"], 
                 ["Elkhart Lake", "2"]]],
                 ["Michigan", [["Harbor Country", "3"], ["Traverse City", "4"]]],
                 ["Indiana", [["Bloomington", "5"], ["Valparaiso", "6"]]],
                 ["Minnesota", [["Twin Cities", 
                 "7"], ["Bloomington", "8"], ["Stillwater", 
                 "9"]]],
                 ["Florida", [["Sanibel & Captiva", "10"]]],
                 ["Illinois", [["Chicago", "11"], 
                 ["Galena", "12"]]],
                 ]

并在您的意见中添加:

<%= select_tag(:brand_id, grouped_options_for_select(@city_group, selected_key = "11", prompt = nil)) %>

希望能帮助到你!享受!

于 2013-05-03T03:47:46.403 回答
2

解决方案:1

city = City.find_by_name("Chicago") 
select(:query, :city_id, option_groups_from_collection_for_select(@states,
           :cities, :name, :id, :name, city.id))

解决方案:2

city_obj = City.find_by_name("Chicago") 
grouped_collection_select(:query, :id, @states, :cities, :name, :id, :name, 
                         {:object => city_obj})

解决方案:3

@city = City.find_by_name("Chicago")
grouped_collection_select(:city, :id, @states, :cities, :name, :id, :name)
于 2013-05-03T06:37:18.053 回答
1

可以预先选择一个选项,但在文档中不是很清楚。第一个参数(此处:city)必须是在 上定义的实例变量的名称self。存储在该实例变量中的对象必须具有以第二个参数命名的方法(此处为:):id。现在@city.id应该返回您想要选择的城市的 ID。

@city = City.find_by_name("Chicago")
grouped_collection_select(:city, :id, @states, :cities, :name, :id, :name)

为了更好地理解,我用一个稍微不同的例子给你做了一个要点。注意:要点应该在 Rails 控制台中执行,以便include工作

于 2013-05-02T22:38:31.090 回答