Ruby 如何提取给定属性的所有值并将其放入数组中?

Ruby 如何提取给定属性的所有值并将其放入数组中?,ruby,ruby-on-rails-3,ruby-on-rails-3.2,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,我有一个Ruby对象,看起来像这样: - !ruby/object:Foo attributes: updated: 2013-07-30 13:30:21.589221000 Z bar: 3 - !ruby/object:Statistic attributes: updated: 2013-07-30 13:30:28.017951000 Z bar: 8 - !ruby/object:Statistic attributes: upda

我有一个Ruby对象,看起来像这样:

- !ruby/object:Foo
  attributes:
    updated: 2013-07-30 13:30:21.589221000 Z
    bar: 3
- !ruby/object:Statistic
  attributes:
    updated: 2013-07-30 13:30:28.017951000 Z
    bar: 8
- !ruby/object:Statistic
  attributes:
    updated: 2013-07-30 13:30:39.514180000 Z
    bar: 1
该对象来自ActiveRecord查询

我想得到这个对象中所有条的数组,即

[3, 8, 1]

在Ruby中是否有一些巧妙的方法可以做到这一点?

如果您只需要ActiveRecord查询中的一个属性,可以使用:


不确定你在那里的具体对象。但是类似list.map{| o | o.attributes[:bar]}的东西应该可以工作。@ale这个对象的类是什么?也许那个Ruby对象是你想要解析的YAML文件?不,它只是对象集合的YAML表示。这个对象是如何创建的:@foo=Statistic.joins:type.whereblah1=?和blah2=?,params[:blah_id],some string.selectupdated,count。我需要在我的视图中同时使用updated和count字段,但对于部分视图,我只需要count。我想您可能需要Foo。pulk:barEither可以工作,您可以将关系串在一起,并将pulk添加到末尾,我相信。根据Rails指南中的示例:Client.where-active:true.pulk:idI认为where会返回ActiveRecord::Relation,而all会返回不支持pulk的true数组。我在3.2.13上,我对自己的行为感到有点惊讶。
Foo.all.pluck(:bar)