我在我的视图中使用此代码创建一个如下所示的选择grouped_collection_select(:query, :city_id, @states, :cities, :name, :id, :name, {:selected => "Chicago"})
:
我希望默认选择“芝加哥”。我怎样才能让它发挥作用?
答案 0 :(得分:2)
您可以在上面的示例中通过定义芝加哥的选定密钥索引来选择“芝加哥”。
以下是一个例子:
@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)) %>
希望它有所帮助!请享用!
答案 1 :(得分:1)
可以预先选择一个选项,但在文档中并不是很清楚。第一个参数(此处为:city
)必须是self
上定义的实例变量的名称。存储在该实例变量中的对象必须具有以第二个参数(此处::id
)命名的方法。现在@city.id
应该返回您想要选择的城市的ID。
@city = City.find_by_name("Chicago")
grouped_collection_select(:city, :id, @states, :cities, :name, :id, :name)
我让你a gist有一个稍微不同的例子,以便更好地理解。注意:要点应在rails控制台中执行,以便include
正常工作
答案 2 :(得分:1)
解决方案: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)