2011-05-05 135 views
0

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

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

在PHP中,我会做一些事情,如:

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

但这并不觉得很rubyish可言。

+2

可能重复:http://stackoverflow.com/questions/5195943/ruby-new-array-from-one-value- in-an-array-of-objects/5196020 – htanata 2011-05-05 10:33:22

回答

1

我认为你在寻找什么本质上是这样的:

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

例如:

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

Checkout more options here

+0

Wohoo!谢谢。 (评论必须是15个字节) – MrB 2011-05-05 11:47:53

+0

不客气。 – 2011-05-05 12:12:08

3

使用map

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

或缩写形式

group_names = groups.map(&:name)