Ich habe eine Rails 5 App mit Publikationen. Diese Veröffentlichungen müssen nach Jahren sortiert werden, wobei die letzten Jahre an erster Stelle stehen.Rails App sortiert keine Publikationen nach Jahr
Das Years-Feld einer Publikation hat den Ganzzahl-Datentyp.
Die PublicationsController hat eine Art actionmethod:
def sort
@category = PublicationCategory.find_by_name(params[:category])
@publications = Publication.sort_by_category(@category.id).grouped_by_year
end
ich einen Umfang grouped_by_year erstellt:
app/models/publication.rb
scope :grouped_by_year, ->{ order(year: :desc).group_by { |p| p.year} }
ich drei Publikationen erstellt, einer des Jahres 2016, 2015 und 2014
aber anstatt in dieser Reihenfolge zu erscheinen:
2016
2015
2014
sie erscheinen in der Reihenfolge:
2015
2014
2016
Hat eine Idee jemand, was das Problem sein könnte?
Meine Code-Repository unter:
https://github.com/acandael/hedera-rails
Dank für Ihre Hilfe,
Anthony
Können Sie versuchen? Scope: grouped_by_year, -> {group (: Jahr) .order (Jahr:: desc)} '? – Sajan
Ich habe es versucht, aber dann bekomme ich den Fehler: PG :: GroupingError: ERROR: Spalte "publications.created_at" muss in der GROUP BY-Klausel erscheinen oder in einer Aggregatfunktion verwendet werden LINE 1: ..._ id "= $ 1 GROUP BY "Publikationen". "Jahr" ORDER BY created_at ... – Toontje
Ich sehe, dass es irgendwie von 'created_at' bestellt, also vor allem, können Sie die Spalte' year' in 'publication' in etwas anderes seit ich umbenennen denke, das ist ein ** reserviertes Wort ** und versuche es dann erneut? – Sajan