创建表过滤器

时间:2012-11-01 21:28:27

标签: ruby-on-rails slim-lang

我有一个简单的表格,有3列,如此

table
  thead
    th Element
    th Owner
    th Progress
  tbody
    == render :partial => "element_row" :collection => @elements :as => table_element

每个元素都是唯一的,一个所有者可能有多个元素。存在一些不同类型的“进展”,例如"started""not started""completed"

我想创建一些过滤表格的链接。例如,我想创建一个已启动链接,当用户点击该链接时,该表将被过滤以仅显示显示"started"的行。过滤器的另一个例子是所有者。

有没有人对如何做到这一点有任何建议?

2 个答案:

答案 0 :(得分:2)

如果您正在寻找可以帮助您的宝石, Ransack 是一个很棒的,受欢迎且活跃的项目,用于搜索(以及过滤 ActiveRecord数据。

如果您查看Ernie的demo site,您可以看到搜索参数如何通过GET查询修改URL。您可以轻松创建类似所需已启动链接的链接,以模拟这些GET表单请求。

答案 1 :(得分:0)

如果要在服务器端执行此操作,请向控制器添加一个过滤器方法,该方法使用链接参数来过滤@elements。

如果您使用ActiveRecord从数据库中选择@elements,您可以执行以下操作:

@elements = Element.where(progress: params[:progress])

如果你只想过滤内存中的@elements,你可以这样做:

@elements = @elements.select{ |element| element.progress == params[:progress] }