【发布时间】:2012-03-20 22:28:43
【问题描述】:
我有一个 rails 3 应用程序,我在其中传递一些字符串查询,如下所示:
<%= link_to "All", work_orders_path(params.merge({:status_filter => "E", :sort_filter => params[:sort_filter]})) %>
在我对 work_order 的看法中,一切都是明智的,这就是这些参数的用途(对现有工作订单进行排序和过滤。)
我遇到的问题是,当我使用 link_to 添加新工单或尝试将 link_to 连接到另一个控制器时,:status_filter 和 :sort_filter 都持续存在,导致路由错误。
例如,当我想点击索引查看所有技术人员(其中这些不适用我得到
没有路由匹配 {:sort_filter=>nil, :status_filter=>"E", :controller=>"技术员"}
我到处寻找解决方案,但到目前为止我还没有想出任何办法。我试过params.delete,没有骰子。我知道必须有一种简单的方法可以从link_to 中的 URL 中清除这些内容,但我无法弄清楚。
【问题讨论】:
-
好像你正在改变
params值。你确定你只使用merge而不是merge!或update吗? -
没有真正理解问题,他们在两个不同的视图之间坚持?或者当您单击“全部”链接时会出现问题?
-
不使用合并!或更新。问题是它们在整个应用程序中的每个 link_to(甚至在不同的控制器中)都存在,到目前为止我还无法清除它们。
-
我只是尝试在我的 link_to 中使用 params.except 去除不需要的参数,但它仍然无法正常工作。
-
您是否在某处实现了
default_url_options?
标签: ruby-on-rails routes params