我有一个选择表格:
<%= f.select :business_name, options_for_select(Client.uniq.pluck(:business_name)),{:include_blank => false},{:multiple=>true} %>
选择不同 business_name
并在选择框中呈现它们。我需要表单在选择business_id
时发送相关的business_name
,而不是发送名称字符串。
我如何实现这一目标?
答案 0 :(得分:2)
options_for_select采用数组数组。理想情况下,如果您希望html选择选项上的名称和值不同,则将这些对传递为[name,value]。通过使用pluck只抓取你在[name]中传递的商业名称 - 没有值放入选项标签。
更改您要使用的代码:
...options_for_select(Client.uniq.pluck(:business_name, :id))...>
答案 1 :(得分:1)
您可以使用:
options_for_select(Client.uniq(:business_name).collect{ |c| [c. business_name, c.id] })
因此,您将返回业务名称上的所有唯一值以及具有选择
的名称 - 值对的收集