Rails - 选择标记帮助器 - 显示两个列值

时间:2014-09-03 09:54:42

标签: ruby-on-rails

在导轨指南中

http://guides.rubyonrails.org/form_helpers.html#option-tags-from-a-collection-of-arbitrary-objects

我们可以使用下面的

显示一个带有城市名称作为选项的选择框
<%= options_from_collection_for_select(City.all, :id, :name) %>

现在我的选择框有以下选项:

  • 墨尔本
  • 伦敦

我需要在选择框中显示城市名称,国家/地区的选项。我怎么能这样做?

喜欢这个

  • Melbournee,澳大利亚
  • 英国伦敦

在cities表中有country_id。

1 个答案:

答案 0 :(得分:3)

首先,您应该在City模型中实施适当的方法,例如:name_with_country

def name_with_country
  "#{name}, #{country.name}"
end

第二,您应该使用此方法并在country查询中加入cities以避免N + 1问题:

<%= options_from_collection_for_select(City.includes(:country), :id, :name_with_country) %>