Как настроить Ransack Rails Gem для добавления NULLS LAST для сортировки
Я хотел бы, чтобы Ransack всегда добавлял NULLS LAST
который поместит нули в последнюю очередь для столбца сортировки.
Есть ли способ сделать это?
Я открыл вопрос GitHub по этому вопросу: https://github.com/activerecord-hackery/ransack/issues/443
1 ответ
Ответ находится в теме, связанной с вопросом выше. Написание здесь, так что его легче найти. По-видимому, вам нужно снова построить строку заказа и добавить Null Last
к этому.
Это решило это для меня (работает на всех столбцах):
@q.result.except(:order).order("#{@q.sorts.first.name} #{@q.sorts.first.dir} NULLS LAST")
Однако вы должны исключить его, когда у вас нет параметров сортировки, так что это мое окончательное решение:
@q = Project.ransack(params[:q])
@fields = current_user.settings.default_project_fields
if @q.sorts.present?
@result = @q.result.except(:order).order("#{@q.sorts.first.name} #{@q.sorts.first.dir} NULLS LAST")
else
@result = @q.result
end