0

我有一个简单的表,有 3 列,像这样

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

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

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

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

4

2 回答 2

2

如果您正在寻找可以帮助您的 gem,Ransack是一个很棒的、流行的、活跃的项目,用于搜索(并通过扩展过滤 ActiveRecord 数据。

如果您查看 Ernie 的演示站点,您可以看到搜索参数如何通过 GET 查询修改 URL。您可以轻松地创建链接,如您想要的启动链接来模拟这些 GET 表单请求。

于 2012-11-01T21:46:06.427 回答
0

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

如果你使用 ActiveRecord 从数据库中选择 @elements,你可以这样做:

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

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

@elements = @elements.select{ |element| element.progress == params[:progress] }
于 2012-11-01T21:45:36.227 回答