2011-07-15 38 views
3

我想運行一個查詢,該查詢只返回我指定的列。我一直沒能找到一個很好的方式與軌道做到這一點3.我第一次嘗試是使用rails查詢特定列3

query = transactions.group("month"). 
        select("DATE_FORMAT(transactions.purchased_at, '%Y-%m') as month") 
rows = ActiveRecord::Base.connection.select_all(query.to_sql) 

而且這也包括交易。*在選擇。我設法得到它的工作是這樣的:

query = transactions.group("month") 
query.select_values = [ 
    "DATE_FORMAT(transactions.purchased_at, '%Y-%m') as month", 
    "count(*) as total" 
] 
rows = ActiveRecord::Base.connection.select_all(query.to_sql) 

這似乎很討厭,但有沒有更好的方法來做到這一點?

回答

5

如果我明白你在找什麼,你可以只使用select AREL方法

User.select('id').where('') 
=> [#<User id: 2>, #<User id: 4>.... 
+0

不幸的是軌仍然包括用戶。*在SQL查詢(鋼軌3.0.7) – opsb

+0

嗯,實際上是作品精細。但是我的原始查詢不會這樣。 – opsb