4 Stimmen

Abfrage nach bestimmten Spalten mit Rails 3

Ich möchte eine Abfrage ausführen, die nur die von mir angegebenen Spalten zurückgibt. Ich habe keine gute Möglichkeit gefunden, dies mit Rails 3 zu tun. Mein erster Versuch war

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

aber dies beinhaltet auch Transaktionen.* in der Auswahl. Ich habe es geschafft, dass es so funktioniert:

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)

Das scheint ziemlich unangenehm zu sein, gibt es einen besseren Weg, dies zu tun?

6voto

pcg79 Punkte 1273

Wenn ich verstehe, wonach Sie suchen, können Sie einfach die select ARel-Verfahren

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X