我有一个简单的表格,有3列,如此
table
thead
th Element
th Owner
th Progress
tbody
== render :partial => "element_row" :collection => @elements :as => table_element
每个元素都是唯一的,一个所有者可能有多个元素。存在一些不同类型的“进展”,例如"started"
,"not started"
和"completed"
。
我想创建一些过滤表格的链接。例如,我想创建一个已启动链接,当用户点击该链接时,该表将被过滤以仅显示显示"started"
的行。过滤器的另一个例子是所有者。
有没有人对如何做到这一点有任何建议?
答案 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] }