国家宝石轨道

时间:2018-04-13 07:53:40

标签: ruby-on-rails countries

我正在使用国家/地区gem在下拉列表中列出国家/地区

<%= form.collection_select(:country, ISO3166::Country.countries.sort_by(&:name), 'name', 'name', {include_blank: 'Select a country'}, class: "select__picker", 'data-style': 'form-control', required: true) %>

有没有办法在下拉列表中使用国家/地区表情符号显示国家/地区名称

1 个答案:

答案 0 :(得分:3)

是的,有办法。

<%= f.collection_select(:country, ISO3166::Country.countries.sort_by(&:name).collect { |c| [ c.name, "#{c.name} #{c.emoji_flag}" ] }, :first, :last, {include_blank: 'Select a country'}, class: "select__picker", 'data-style': 'form-control', required: true) %>

collection_select仅接受方法名称作为text_method参数。 在text_method param上调用collection,即:

ISO3166::Country.countries.sort_by(&:name).collect { |c| [ c.name, "#{c.name} #{c.emoji_flag}" ] }

因此,在您的情况下,您正在调用值:first:last调用选项文本:

[
  ['COUNTRY_1_NAME', 'COUNTRY_1_NAME COUNTRY_1_FLAG'],
  ['COUNTRY_2_NAME', 'COUNTRY_2_NAME COUNTRY_2_FLAG']
  etc.
]