我正在尝试使用
在select标签中返回我的产品所在国家/地区options_from_collection_for_select()
我有一个产品型号,国家/地区是列名。我的代码看起来像这样
<%= select_tag(:country, options_from_collection_for_select(Product.all.order(:country), :id, :country), :prompt => "Alle Länder") %>
然而,它在下拉字段中不止一次给我每个国家,即每个国家出现20次。
现在我一直在尝试使用类似问题中建议的解决方案,如此
options_from_collection_for_select(Product.all.pluck('DISTINCT country'), :id, :country), :prompt => "Alle Länder") %>
然而我收到错误声明:
"undefined method `country' for "Spain":String
Did you mean? count"
现在我无法弄清楚在这种情况下适合哪种方法。
非常感谢!
答案 0 :(得分:1)
您获得非uniq值,因为在给定国家/地区的数据库中存在的行数多于一行。
= f.select :country,
Product.pluck(:country).uniq,
{ include_blank: 'Select country' }
如果您仍想使用select_tag
:
= select_tag :country,
options_for_select(Product.pluck(:country).uniq),
{ include_blank: 'Select country' }