選擇字段我使用這個代碼在我看來,以創建一個選擇grouped_collection_select(:query, :city_id, @states, :cities, :name, :id, :name, {:selected => "Chicago"})
,看起來像這樣:的Rails在grouped_collection_select
我想「芝加哥」默認選擇有。我怎樣才能使這個工作?
選擇字段我使用這個代碼在我看來,以創建一個選擇grouped_collection_select(:query, :city_id, @states, :cities, :name, :id, :name, {:selected => "Chicago"})
,看起來像這樣:的Rails在grouped_collection_select
我想「芝加哥」默認選擇有。我怎樣才能使這個工作?
可以預先選擇一個選項,但在文檔中不太清楚。第一個參數(此處爲:city
)必須是在self
上定義的實例變量的名稱。存儲在該實例變量中的對象必須有一個以第二個參數命名的方法(這裏是::id
)。現在@city.id
應該返回您想要選擇的城市的ID。
@city = City.find_by_name("Chicago")
grouped_collection_select(:city, :id, @states, :cities, :name, :id, :name)
我給你製作了a gist,稍微改變了一些例子,以便更好地理解。注意:這個要點應該在導軌控制檯中執行,以便include
可以工作
我覺得'City.find_by_name(「芝加哥」)'更有地道。 – 2013-05-03 03:13:40
同意 - 回答編輯。 – tessi 2013-05-03 05:36:06
嗨,您可以在上面的示例中選擇「芝加哥」,方法是定義選定的芝加哥鍵碼索引。
下面是一個例子:
@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)) %>
希望它能幫助!請享用!
selected_key =「」就是我正在尋找的東西。像魅力一樣工作。 – iamtoc 2015-01-28 08:37:57
解決方案: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)
注意對於其它回答者:設置':selected'到這個城市的我d(不是名字)不起作用。 – 2013-05-02 22:31:01
你有這個工作嗎? – dax 2013-10-17 17:43:07
@dax不,我最終只是添加了一個默認的「請選擇位置」類型的選項http://weekaway.com – bcackerman 2013-10-17 21:37:37