【问题标题】:Query for specific columns with rails 3使用 rails 3 查询特定列
【发布时间】:2011-07-15 14:37:28
【问题描述】:

我想运行一个只返回我指定的列的查询。我一直无法找到使用 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)

这似乎很讨厌,有没有更好的方法呢?

【问题讨论】:

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


    【解决方案1】:

    如果我了解您要查找的内容,您可以使用 selectARel 方法

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

    【讨论】:

    • 不幸的是 rails 在 sql 查询中仍然包含 user.* (rails 3.0.7)
    • 嗯,实际上效果很好。但我原来的查询不是这样的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多