Rails应用程序不按年份对出版物进行排序

时间:2017-02-02 10:14:10

标签: ruby-on-rails rails-activerecord

我有一个带有出版物的Rails 5应用程序。这些出版物需要按年订购,近年来一直处于最佳状态。

发布上的years字段具有整数数据类型。

PublicationsController有一个排序动作方法:

def sort
  @category = PublicationCategory.find_by_name(params[:category])
  @publications = Publication.sort_by_category(@category.id).grouped_by_year
end

我创建了一个范围groups_by_year:

app/models/publication.rb

scope :grouped_by_year, ->{ order(year: :desc).group_by { |p| p.year} }

我创建了三个出版物,2016年,2015年和2014年之一

但不是按此顺序出现:

2016
2015
2014

它们出现在顺序中:

2015
2014
2016

有人知道问题可能是什么吗?

我的代码存储库位于:

https://github.com/acandael/hedera-rails

感谢您的帮助,

安东尼

1 个答案:

答案 0 :(得分:0)

sort_by_category范围中删除此内容,它会搞乱您最终查询的顺序。

.order('created_at desc')