【问题标题】:How do I select a certain field from an array of objects of a certain class in Ruby on Rails 2.3.14如何从 Ruby on Rails 2.3.14 中某个类的对象数组中选择某个字段
【发布时间】:2012-04-19 21:19:11
【问题描述】:

如果我有一个名为 Stream 的类的 100 个对象的数组,如下所示:

User.find(1001).streams.find( :all, :order => "id", :limit => 100 )

这基本上是一个数据表,我如何从中选择某个字段,例如评级?在 SQL 中,我需要做的就是 SELECT rating FROM streams WHERE user_id=1001 ORDER BY id LIMIT 100,但我不知道如何在 Ruby on Rails 中做到这一点。使用上面的命令会返回所有我不能使用的字段。

【问题讨论】:

    标签: sql ruby-on-rails arrays


    【解决方案1】:

    下面的代码将返回rating的数组

    User.find(1001).streams.all( :order => "id", :limit => 100).map(&:rating) 
    

    如果您想避免检索User 对象的所有属性的成本:

    User.find(1001).streams.all:select => "rating", 
      :order => "id", :limit => 100).map(&:rating) 
    

    您可以在键 :select 的值中使用标准的 SELECT 子句语法。

    如果你想避免构造User 对象:

    User.connection.select_values("select rating from users order by id limit 100")
    

    【讨论】:

      猜你喜欢
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      • 2011-05-04
      • 2020-02-23
      • 1970-01-01
      相关资源
      最近更新 更多