groups_collection_select的自定义显示标签

时间:2016-07-06 01:56:27

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

我的视图中有以下grouped_collection_select

<%= grouped_collection_select(:classroom, :course_id, @classrooms, :courses, :name, :id, :name) %>

如何自定义显示标签,使其成为2个属性的串联?

1 个答案:

答案 0 :(得分:1)

grouped_collection_select将method-name作为标签的参数。通过在集合中的每个对象上调用该方法来生成标签。

在您的示例中,该方法称为:name,但您可以在Classroom类上创建一个包含所需两个属性的方法,例如:

# totally made up - use whatever attributes and method-name you want
def name_and_location
  [name, location].join(': ')
end

然后只在集合中使用它 - 选择:

<%= grouped_collection_select(:classroom, :course_id, @classrooms, :courses, :name_and_location, :id, :name) %>

注意:以上示例适用于组标签...但您可以同样为单个项目标签执行相同操作,只需使用最后一个参数并将方法放在Course模型上