我用国家创业板在下拉列表中列出国家,
<%= 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) %>有什么方法在下拉菜单上用国家符号显示国家名称吗?
发布于 2018-04-13 08:18:51
是的,有个办法。
<%= 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在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.
]https://stackoverflow.com/questions/49811943
复制相似问题