Rails将过滤器应用于视图

时间:2013-08-06 12:56:46

标签: ruby-on-rails filter

rails创建过滤器的最佳方法是什么。所以基本上我有一个包含行和列的html表,列出了很多信息。现在我想按日期,按名称,升序,降序等对该表进行排序......

我不希望使用javascript来完成此操作,如果可能的话我宁愿使用ruby代码。实现这一目标的最佳方法是什么?如果这不是一个很好的方法,我不必使用表。同样通过使用代码,这意味着每次我希望应用过滤器时我都必须刷新页面,或者可以在不刷新页面的情况下完成,是否可以立即进行?

3 个答案:

答案 0 :(得分:10)

假设您有一个表或要按名称过滤的人员列表

  1. 您的:name模型中包含person.rb范围,如下所示:

    scope :name, lambda{|name| where('name = ?', name )}

  2. persons_controller.rb或您希望按姓名过滤的视图的任何其他控制器中,在顶部添加has_scope :name

  3. 在视图上传递:name参数以获取过滤结果,如下所示:
  4. <%= link_to 'filtered_name', {controller: 'persons', action: 'index', :name => 'the_name'} %>

    您可以类似地为升序和降序应用过滤器。

答案 1 :(得分:5)

您可以使用Filterrific gem。你可以在这里看到现场演示:

http://filterrific.clearcove.ca/

答案 2 :(得分:3)

以下是关于您正在寻找什么的很棒的铁路广播: http://railscasts.com/episodes/240-search-sort-paginate-with-ajax

它会显示有和没有javascript。

如果您想在不刷新页面的情况下应用过滤器,则表示您需要使用Javascript。