我有一个数组“组”。每个组对象都有一个属性名称。我想获得所有这些名称的列表,并且可能还包含相应的ID,以便在rails中进行下拉选择。获取对象列表中的名称列表
有没有一种非常红宝石的方式来做到这一点?
在PHP中,我会做一些事情,如:
group_names = Array.new
Groups.each do |group|
group_names << group.name
end
但这并不觉得很rubyish可言。
我有一个数组“组”。每个组对象都有一个属性名称。我想获得所有这些名称的列表,并且可能还包含相应的ID,以便在rails中进行下拉选择。获取对象列表中的名称列表
有没有一种非常红宝石的方式来做到这一点?
在PHP中,我会做一些事情,如:
group_names = Array.new
Groups.each do |group|
group_names << group.name
end
但这并不觉得很rubyish可言。
我认为你在寻找什么本质上是这样的:
select(object, method, choices, options = {}, html_options = {})
例如:
<%= f.select("type_id", Object.all.collect {|o| [ o.name, o.id ] }) %>
Wohoo!谢谢。 (评论必须是15个字节) – MrB 2011-05-05 11:47:53
不客气。 – 2011-05-05 12:12:08
使用map
group_names = groups.map{|group| group.name}
或缩写形式
group_names = groups.map(&:name)
可能重复:http://stackoverflow.com/questions/5195943/ruby-new-array-from-one-value- in-an-array-of-objects/5196020 – htanata 2011-05-05 10:33:22