我在页面上有一个搜索表单,该表单允许用户在多种条件下过滤列表。现在,我想在列表顶部添加快速链接以应用范围。我这样尝试过:
= link_to "Visited", q: {"activated" => true}
尽管此方法过滤列表以仅显示激活的项目,但它也会重置搜索查询。换句话说,它不记得表单中已过滤的内容。
是否有一种方法可以适应@q
,以便可以将此"activated" => true
添加到所需过滤器的哈希中?
答案 0 :(得分:0)
我认为您不能这样做,因为如果您单击链接,则不会提交表单,因此不会提交参数。
将参数传递到链接中将发送参数(如果存在):
= link_to "Visited", q: {"activated" => true, "your_params" => params}
这仅在表单已提交一次的情况下起作用,否则参数将为空。
编辑
我假设您的表单上的字段正在填充(如果有值的话)。
例如,
<%= text_field_tag(:email, if !params["email"].nil? then params["ip_email"] end) %>
答案 1 :(得分:0)
假设您仅使用:q参数进行过滤,则可以对其进行汇总。
= link_to "Visited", q: (params[:q] || {}).merge(activated: true)