在选择选项栏中添加多个数据4

时间:2015-06-11 12:57:28

标签: ruby-on-rails ruby ruby-on-rails-4 select

我正在使用以下代码和函数 options_from_collection_for_select 为用户生成选项。

<%= select_tag 'receiver', options_from_collection_for_select(@user, 'id', 'email')  %> 

上面的代码生成下面的html:

<select id="receiver" name="receiver" style="display: none;">
   <option value="1">email1@yahoo.com</option>
   <option value="2">email2@gmail.com</option>
   <option value="3">email3@gmail.com</option>
</select>

但我希望使用用户名发送电子邮件,例如<optionvalue="1">email1@yahoo.com(some_user)</option>

建议任何备用功能或自定义当前功能。

2 个答案:

答案 0 :(得分:2)

User模型中添加方法:

def user_dispay_name
  "#{email}(#{full_name})"
end

现在做:

<%= select_tag 'receiver', options_from_collection_for_select(@user, 'id', 'user_dispay_name')  %> 

答案 1 :(得分:0)

但如果没有options_from_collection_for_select这个功能,请使用以下代码:

<%= select_tag 'receiver', options_for_select(@user.map{ |c| ["#{c.email} (#{c.display_name})", "#{c.id}"] })   %>