19

简而言之,我只想知道是否有办法使用 Ransack gem 为排序功能设置默认值?IE。

目前,页面加载时我有以下内容:

empty_ransack

但相反,我希望在页面加载时具有以下默认值:

用默认值进行洗劫

是否可以通过正确配置 Ransack Gem 来做到这一点?

一如既往地提前感谢!

最好的祝福!

4

2 回答 2

48

这对我有用:

@search = Change.search(params[:q])
@search.sorts = 'updated_at desc' if @search.sorts.empty?

注意:起初我有些头疼,当我desc用大写字母时——那是行不通的。

于 2013-02-12T07:56:36.393 回答
4

您还可以通过定义数组来设置多个默认排序:

@search = Post.ransack(params[:q])  
@search.sorts = ['name asc', 'created_at desc'] if @search.sorts.empty?
@posts = @search.result.paginate(page: params[:page], per_page: 20)

https://github.com/activerecord-hackery/ransack/wiki/Sorting-in-the-Controller

于 2016-01-08T13:22:40.117 回答