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