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

时间:2012-11-13 22:22:21

标签: ruby ruby-on-rails-3.2 ransack

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

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

empty_ransack

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

ransack with defaults

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

一如既往地感谢您!

最诚挚的问候!

2 个答案:

答案 0 :(得分:40)

这对我有用:

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

注意:当我用desc大写时,我有些头疼 - 这只是不起作用。

答案 1 :(得分:2)

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

@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