使用rails 3查询特定列

时间:2011-07-15 14:37:28

标签: ruby-on-rails-3 activerecord arel

我想运行一个只返回我指定的列的查询。我无法通过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)

这看起来很糟糕,有没有更好的方法呢?

1 个答案:

答案 0 :(得分:5)

如果我理解你在寻找什么,你可以使用select ARel方法

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