Rails在选择中传递id而不是字符串

时间:2016-06-29 19:52:07

标签: ruby-on-rails

我有一个选择表格:

<%= f.select :business_name,  options_for_select(Client.uniq.pluck(:business_name)),{:include_blank => false},{:multiple=>true} %>

选择不同 business_name并在选择框中呈现它们。我需要表单在选择business_id时发送相关的business_name,而不是发送名称字符串。

我如何实现这一目标?

2 个答案:

答案 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] })

因此,您将返回业务名称上的所有唯一值以及具有选择

的名称 - 值对的收集