如何设置搜索排序的默认值?

jls*_*str 16 ruby ruby-on-rails-3.2 ransack

简单地说,我只想知道是否有办法使用Ransack gem设置排序功能的默认值?即.

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

empty_ransack

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

搜索默认值

是否可以通过正确配置Ransack宝石来实现这一目标?

一如既往地感谢!

最好的祝福!

Chr*_*zig 41

这对我有用:

@search = Change.search(params[:q])
@search.sorts = 'updated_at desc' if @search.sorts.empty?
Run Code Online (Sandbox Code Playgroud)

注意:我最初有一些头疼,当我desc用大写字母时 - 这是行不通的.


Ton*_*ado 7

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

@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)
Run Code Online (Sandbox Code Playgroud)

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