3

我有一个 collection_select 下拉列表,其中包含如下名称:

<%= f.collection_select(:person_id, Person.all, :id, :name) %>

但是我有一个指向他们所属的组的人的外键。在下拉列表中,我想显示人名和他们旁边的组,如下所示:

保罗(高尔夫球手)凯文(水手)

ETC ...

这可以使用 collection_select 吗?

4

2 回答 2

7

这实际上很简单。您只需要在要从中提取的模型上编写一个方法,该方法会格式化您想要在下拉列表中的字符串。因此,从文档中:

class Post < ActiveRecord::Base
  belongs_to :author
end

class Author < ActiveRecord::Base
  has_many :posts

  def name_with_initial
    "#{first_name.first}. #{last_name}"
  end
end

然后,您collection_select只需调用该方法而不是调用名称或您之前出现的任何内容。

collection_select(:post, :author_id, Author.all, :id, :name_with_initial)

事后看来似乎很明显。

于 2016-05-23T15:35:52.140 回答
0

你有没有尝试过:

<%= f.collection_select(:person_id, Person.all.collect { |p| ["#{p.name}(#{p.group})", p.id ] } ) %>
于 2016-05-20T01:44:46.937 回答