1

我有一个包含以下代码的 collection_select 表单:

<%= f.collection_select(:city_id,  City.order('name ASC'),  :id, :name, {:prompt   => "Select a City"}, {:id => 'cities_select'}) %>

现在它只是在我的数据库中按名称列出了所有城市,但是城市名称重复。例如,有两个“皮奥里亚”城市。

因此,我想用逗号分隔状态属性,例如:“Peoria, IL”,以帮助区分城市。如何在表单代码中编写此代码?

4

3 回答 3

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
于 2013-05-24T04:58:42.977 回答
0

您可以使用选择:

<%= f.select(:city_id,  City.order('name ASC').map{ |city| [city.your_method, city.id]},
      {:prompt   => "Select a City"}, {:id => 'cities_select'}) %>
于 2013-05-24T04:06:24.537 回答
0
f.select :city_id, City.all.map{|c| ["#{c.name}, #{c.state}", c.id] }, { :prompt => "Select City" }
于 2013-05-24T05:53:58.797 回答