我正在尝试做一些有些常见的事情 - 使用collection_select
. 一个用户has many
付款,一个付款belongs_to
用户。我正在使用设计,所以知道current_user
.
我可以使用以下代码在视图中成功生成重复的电子邮件列表:
<%= form_for(@payment) do |f| %>
.
.
.
<%= f.collection_select :email, current_user.payment, :email, :email, {:include_blank => "Please select"} %>
但是,我无法获得相同的电子邮件列表以消除重复。这个问题在 Stackoverflow 上被问过几次,但我没有成功实施其他解决方案。我试过(没有运气):
<%= f.collection_select :email, current_user.payment.collect(&:email).uniq, :email, :email, {:include_blank => "Please select"} %>
<%= f.collection_select :email, current_user.payment.pluck(:email).uniq, :email, :email, {:include_blank => "Please select"} %>
我收到错误消息undefined method 'email' for "test@example.com":String。谁能帮我理解 (1) 为什么我使用的代码不正确,以及 (2) 对代码进行哪些更改?
非常感谢您提供的任何帮助!