Запрос для конкретных столбцов с рельсами 3 - PullRequest
3 голосов
/ 15 июля 2011

Я хочу выполнить запрос, который возвращает только те столбцы, которые я указал.Я не смог найти хороший способ сделать это с помощью 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 Ответ

5 голосов
/ 15 июля 2011

Если я понимаю, что вы ищете, вы можете просто использовать select ARel метод

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