Ich habe eine Rails App, die in der Entwicklung (SQLite) funktioniert, aber viele Fehler wirft, wenn ich es über Heroku, die PostgreSQL verwenden ich sammle.Heroku PostgreSQL GROUP_BY Fehler in Rails App
die Fehlermeldung zurückgegeben bekommen:
ActionView::Template::Error (PGError: ERROR:
column "practices.id" must appear in the GROUP BY clause or be used in an aggregate function:
SELECT "practices".*
FROM "practices" WHERE ("practices".activity_id = 1)
AND ("practices"."created_at" BETWEEN '2011-01-01' AND '2011-01-31')
GROUP BY DATE(created_at) ORDER BY created_at DESC):
dies geworfen wird, wenn ich die folgenden nennen:
def month_days_not_practiced(date = Date.today)
p = practices.where(:created_at => date.at_beginning_of_month..date.at_end_of_month).group("DATE(created_at)").to_a.count
days_in_month(date.year, date.month) - p
end
ich wirklich den Code sauber halten möchten, so dass es auf beiden Entwicklungsarbeiten und Produktions-DBs ... kann jemand etwas Licht abwerfen?
Ich habe dies versucht:
def month_days_not_practiced(date = Date.today)
p = practices.where(:created_at => date.at_beginning_of_month..date.at_end_of_month).group("practices.id, DATE(created_at)").to_a.count
days_in_month(date.year, date.month) - p
end
ohne Erfolg ...
tia.
ah Prost! Das tut es. –
Ich bin dadurch gründlich verwirrt worden. Wenn ich nach allen Spalten, die ich auswähle, gruppieren muss, dann scheint es, dass ich von keinem von ihnen gruppiert werde? Mit y löst unsere Antwort den Fehler, aber jetzt bin ich im Wesentlichen mit '.all'. Ich bin mir sicher, dass ich hier etwas verpasse, aber es hat mich bisher angedeutet. – wuliwong