我有一个collection_select表单,其中包含以下代码:
<%= f.collection_select(:city_id, City.order('name ASC'), :id, :name, {:prompt => "Select a City"}, {:id => 'cities_select'}) %>
现在它只是在我的数据库中按名称列出所有城市,但是有重复的城市名称。例如,有两个“皮奥里亚”城市。
所以,我想用逗号分别显示州属性:“Peoria,IL”以帮助区分城市。如何在表单代码中编写此代码?
答案 0 :(得分:6)
您也可以使用collection_select
f.collection_select :city_id, City.order('name ASC'), :id, :name_with_state, { prompt: 'Select a City' }, { id: 'cities_select' }
name_with_state
应该在你的城市模型中
def name_with_state
"#{name}, #{state}"
end
答案 1 :(得分:0)
您可以使用选择:
<%= f.select(:city_id, City.order('name ASC').map{ |city| [city.your_method, city.id]},
{:prompt => "Select a City"}, {:id => 'cities_select'}) %>
答案 2 :(得分:0)
f.select :city_id, City.all.map{|c| ["#{c.name}, #{c.state}", c.id] }, { :prompt => "Select City" }