ruby-on-rails - rails 4 中的 options_from_collection_for_select

标签 ruby-on-rails ruby forms ruby-on-rails-4

我正在构建一个简单的表单,让我的 Rails 4 站点的用户可以互相发送消息。

在表单中,用户可以使用系统中所有用户的选择列表来选择消息的收件人(这是一个小用户群)。

现在表单控件看起来像这样,并且工作正常:

<%= f.select(:to_id, options_from_collection_for_select(User.all, :id, :first_name), {}, {:class => 'form-control'}) %>

但是,Users 表中也有一个“昵称”字段——我想让表单显示昵称(如果存在)以及用户的名字/姓氏name-- 所以选择的值将是:

<option>Snoop Dogg - Calvin Broadus</option>

不仅仅是

<option>Calvin</option>

这可能吗?

最佳答案

Users 模型上创建一个 display_name

def display_name
  nickname || first_name
end

然后更新您的表单以引用它

<%= f.select(:to_id, options_from_collection_for_select(User.all, :id, :display_name), {}, {:class => 'form-control'}) %>

关于ruby-on-rails - rails 4 中的 options_from_collection_for_select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25493664/

相关文章:

javascript - 显示警告消息后防止在 javascript 中提交表单

php - Symfony 2 自己的字段类型 - 总是 "This value is not valid"错误

ruby-on-rails - 访问 Rakefile 中的命名路由

ruby-on-rails - Capistrano 部署不完整

ruby - 导轨 3.2 : how to find all parents from a collection of children

ruby - XPATH 选择具有属性和文本的节点

ruby-on-rails - 将 New Relic 定位为仅在 1 个(共 3 个)应用服务器上运行

ruby-on-rails - Rails 单表继承 (STI) 的替代方案?

ruby - 我可以使用 `else if` 而不是 `elsif` 吗?

ruby-on-rails - Rails - ActiveAdmin - 自定义表单将 has_many 关系显示为表