忽略Ransack搜索中的特定参数,但保留在搜索表单中

问题描述

在Ransack搜索表单上,我有一个名为created_at_between的字段,您可以从下面的屏幕截图中看到该日期范围。我不希望Ransack直接使用它。我想从搜索中忽略它,但是在提交日期表单后,日期范围字段中的搜索表单仍需要它以显示值。这样,用户就知道他用于搜索的日期范围。

因此,如果执行此操作,params [:q] .except(“ created_at_between”),它将正确地忽略该参数,并且搜索结果正常。但是我认为我从@q变量中丢失了它,因此提交后它不会显示搜索表单日期字段中。

搜索表单:

enter image description here

控制器中的代码

@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])

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)