Как установить значения по умолчанию для сортировки ransack? - программирование
Подтвердить что ты не робот

Как установить значения по умолчанию для сортировки ransack?

Чтобы просто сказать, я просто хотел бы узнать, есть ли способ установить значения по умолчанию для функций сортировки с использованием Ransack gem? т.е.

В настоящее время при загрузке страницы у меня есть следующее:

empty_ransack

Но вместо этого я бы хотел иметь следующие значения по умолчанию при загрузке страницы:

ransack with defaults

Можно ли это сделать с помощью правильной настройки Ransack Gem?

Спасибо заранее, как всегда!

С наилучшими пожеланиями!

4b9b3361

Ответ 1

Это работает для меня:

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

Примечание. Сначала у меня была царапина на голове, когда у меня была desc в верхнем регистре - это просто не работает.

Ответ 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