最新版本的Rails。
我有一个包含多个列的表位置,但有问题的是“状态”。这是一个基于字符串的列,其中包含值“Add”'Error''Drop'。我在视图中有表格渲染,并希望创建链接,过滤表格中返回的数据,受状态限制。
Add | Error ID | Name | Status 1 Bob Add 2 Jim Error
如果我单击视图中表格上方的“添加”链接,它将更改表中的数据以仅显示Bob,因为他的状态为“添加”。如果我点击错误链接,它将只显示吉姆。
我目前可以使用限制视图数据
@positions = Position.where(:status => "Add")
但我想在链接点击时调用此限制。
感谢您的帮助,如果我需要进一步定义,请告诉我。
答案 0 :(得分:1)
添加link_to链接,将其各自的状态作为参数传递,然后根据参数[:status]调整该控制器操作并返回@positions(如果存在)。
链接
link_to "Error", positions_path(:status => "Error")
控制器
if params[:status].present?
@positions = Position.where(status: params[:status])
else
@positions = Position.all
end
答案 1 :(得分:0)
您可以完全按照此答案中的说明进行操作:https://stackoverflow.com/a/3027233/1023609
创建一个包含2个或更多提交按钮的表单。在您的操作中,您使用params哈希中提交的值来进行查询并更改列表。
答案 2 :(得分:0)
在视图中,您可以执行以下操作:
link_to "Add", your_path(status: "Add")
link_to "Error", your_path(status: "Error")
其中your_path
是您正在执行过滤器的控制器/操作的路径。在该控制器中执行以下操作:
@positions = Position.where(:status => params[:status])