在页面重新加载时重置 Filterrific 过滤器

Reset Filterrific Filters on Page Re-load

我正在使用 ClearCove 的 filterrific 插件。

我想在重新加载页面时重置过滤器。目前,它保留了最后一个搜索过滤器,这让 IMO 感到困惑。

这是我的控制器:

  def index
     @filterrific = initialize_filterrific(
      current_user.patients,
      params[:filterrific],
      :select_options => {
        sorted_by: Patient.options_for_sorted_by      },
    ) or return
    @patients = @filterrific.find.page(params[:page])
    @templates = Template.all
    gon.root_url = root_url
  end

我可以用 hack-y 的方式做到这一点,即使用 Jquery 单击视图中呈现的 reset_filterrific_url。但这似乎是错误的。如何在加载页面时清除过滤器?

filterrific 参数保留在浏览器会话中。您可以通过添加 persistence_id 选项来禁用会话持久性:

@filterrific = initialize_filterrific(
  current_user.patients,
  params[:filterrific],
  :select_options => {
    sorted_by: Patient.options_for_sorted_by      
  },
  :persistence_id => false,
) or return

更多信息请见 filterrific documentation