Rails将过滤器应用于视图

Boj*_*jan 1 ruby-on-rails filter

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

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

Opt*_*tte 10

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

  1. :name包含在范围内person.rb的模型是这样的:

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

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

  3. 在视图上传递:name参数以获取过滤结果,如下所示:

<%= link_to 'filtered_name', {controller: 'persons', action: 'index', :name => 'the_name'} %>

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

  • 我从未使用过scope和lambda.你知道有关如何完成的任何写得好的初学者指南吗?我对ruby和rails很新.你的解释非常好,我只需要更深入地解释它是如何工作的. (2认同)
  • @SurgePedroza:name =>'the_name'是一个查询参数,生成的url将是这样的`http:// localhost:3000/persons?name = the_name`,这将获取名为'的`person`记录名字'. (2认同)

小智 6

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

http://filterrific.clearcove.ca/