ActiveRecord选择没有AR对象的属性

Gaz*_*zza 2 mysql activerecord ruby-on-rails

我有一个包含许多行的表,我只需要某些行的ID.缓慢的方式是打电话

SomeARClass.find(:all, :conditions => {:foo => true}, :select => :id)
Run Code Online (Sandbox Code Playgroud)

这将返回AR对象...

有没有办法在类上调用select并让它返回一个普通的旧ruby数据结构.像这样的东西:

SomeARClass.select(:id, :conditions => {:foo => true})
-> [1,2,3]
Run Code Online (Sandbox Code Playgroud)

Kev*_*vin 5

ActiveRecord::Base.connection.select_all(sql)
Run Code Online (Sandbox Code Playgroud)

要么

SomeARClass.connection.select_all(sql)
Run Code Online (Sandbox Code Playgroud)

这就是你想要使用的.它返回一个哈希数组.但是应该谨慎使用它.手动编码的SQL是ActiveRecord的替代品.我只在真正的性能关键区域使用,其中构造和返回AR对象太慢.