从对象列表中获取名称列表

时间:2011-05-05 10:18:31

标签: ruby arrays

我有一个数组“群组”。每个组对象都有一个属性名称。我想获得所有这些名称的列表,也可能是相应的ID,以便在rails中的下拉列表中进行选择。

有没有非常红宝石的方法来做到这一点?

在PHP中,我会做类似的事情:

group_names = Array.new
Groups.each do |group|
  group_names << group.name
end

但这根本不觉得非常红润。

2 个答案:

答案 0 :(得分:3)

使用map

group_names = groups.map{|group| group.name}

或简短形式

group_names = groups.map(&:name)

答案 1 :(得分:1)

我认为你所寻找的基本上是这样的:

select(object, method, choices, options = {}, html_options = {})

例如:

<%= f.select("type_id", Object.all.collect {|o| [ o.name, o.id ] }) %>

Checkout more options here