#ransack
#ransack
Вопрос:
В моей форме поиска Ransack у меня есть поле с именем created_at_between, которое представляет собой диапазон дат, который вы можете видеть на скриншоте ниже. Я не хочу, чтобы Ransack напрямую использовал его. Вместо этого я хочу игнорировать это из поиска, но мне все еще нужно, чтобы форма поиска в поле диапазон дат отображала значение после отправки формы. Таким образом, пользователь знает, какой диапазон дат он использовал для поиска.
Итак, если я сделаю это, params[:q].except(«created_at_between»), он корректно игнорирует параметр, и результат поиска будет в порядке. Но я думаю, что я теряю его из переменной @q, и поэтому он не отображается в поле даты формы поиска после отправки.
Форма поиска:
Код в контроллере:
@q = Productivity.accessible_by(current_ability, :read)
if params[:q][:created_at_between]
date = date_range_separator(params[:q][:created_at_between])
@q = @q.where('lower(duration) >= ? ', date[:date_from])
.where('upper(duration) <= ? ', date[:date_to])
end
s_param = params[:q].except("created_at_between")
@q = @q.ransack(s_param)
@productivities = @q.result
.order('created_at DESC')
.page(params[:page])