Sql 在RubyonRails 2.3.14中,如何从某个类的对象数组中选择某个字段
如果我有一个名为Sql 在RubyonRails 2.3.14中,如何从某个类的对象数组中选择某个字段,sql,ruby-on-rails,arrays,Sql,Ruby On Rails,Arrays,如果我有一个名为Stream的类的100个对象的数组,如下所示: User.find(1001).streams.find( :all, :order => "id", :limit => 100 ) 这基本上是一个数据表,我如何从中选择某个字段,例如评级?在SQL中,我需要做的就是,从流中选择rating,其中user_id=1001 ORDER BY id LIMIT 100,但我不知道在Ruby on Rails中如何做到这一点。使用上面的命令将返回我无法使用的所有字段。下面
Stream
的类的100个对象的数组,如下所示:
User.find(1001).streams.find( :all, :order => "id", :limit => 100 )
这基本上是一个数据表,我如何从中选择某个字段,例如评级?在SQL中,我需要做的就是,
从流中选择rating,其中user_id=1001 ORDER BY id LIMIT 100
,但我不知道在Ruby on Rails中如何做到这一点。使用上面的命令将返回我无法使用的所有字段。下面的代码将返回一个评级数组
User.find(1001).streams.all( :order => "id", :limit => 100).map(&:rating)
如果要避免检索用户
对象的所有属性的成本,请执行以下操作:
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")