从一行中的查询字符串中删除参数

时间:2018-01-15 05:34:31

标签: ruby-on-rails ruby

我有一段代码从查询字符串中删除了search元素,因此我可以提供一个链接,指示用户重新加载页面而不显示搜索参数。

我必须做的代码需要6行。

<%
  url = request.original_url
  uri = URI.parse(url)
  query = Rack::Utils.parse_query(uri.query)
  query.delete('search')
  uri.query = Rack::Utils.build_query(query)
%>
<%= link_to 'Clear search filter', uri.to_s %>.

在Rails中是否有单行代码,所以我只需要link_to行?

更新:我希望能够保留除search参数之外的任何其他查询字符串参数。

2 个答案:

答案 0 :(得分:1)

您的方式完全取决于您的要求。 您只需

即可实现此目的
<%= link_to 'Clear search filter', search_path %>

如果您需要任何特殊参数,请将其传递给wil url

<%= link_to 'Clear search filter', search_path(your_required_param/params) %>

答案 1 :(得分:1)

您可以url_for使用当前params的副本而不使用search密钥:

<%= link_to 'Clear search filter', url_for(params.except(:search)) %>