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