2015-06-22 152 views
0

我使用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 

我能做到这一点的黑客-Y方式这将是使用jQuery单击该视图呈现的reset_filterrific_url。但这似乎是错误的。如何在页面加载时清除过滤器?

回答

8

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

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

更多信息。

+0

完美,谢谢@Jo –

+0

@Jo Hund - 感谢您的惊人的宝石,你能告诉我如何给予prefiltered选项。就像我想在link_to中传递参数一样,并且基于那个被渲染的页面将在filterrrific过滤器中检查预过滤选项 – user4965201