ruby-on-rails-3 - 使用 rails 3 查询特定列

标签 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)

虽然这看起来很讨厌,但有没有更好的方法来做到这一点?

最佳答案

如果我明白你在找什么,你可以使用 select雷尔法

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

关于ruby-on-rails-3 - 使用 rails 3 查询特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6708712/

相关文章:

postgresql - 无法将 Padrino 连接到带有 activerecord 的 PostgreSQL 数据库

ruby-on-rails - 获取 Rails 中除空列以外的所有条目

sql - 在 ActiveRecord/Arel (Rails 4) 中进行联合交集的有效方法?

ruby-on-rails - Rails & Papertrail - 在查询中包含以前的版本

ruby - #<User :1123123123> 的未定义方法 `password'

ruby-on-rails - 如何在 rails 中有两个不同的注册页面(使用设计)

javascript - 在 Rails 中动态选择项目

ruby-on-rails - 当涉及 pluck 时 to_sql 不起作用

ruby-on-rails - 在 Rails 5 中,如何返回两个作用域的联合或将它们合并为一个?

ruby-on-rails - .preload 使用两个数据库