2012-03-20 2 views
0

У меня есть рельсы 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», :.. контроллер => «технари»}

Я искал везде для решения, но пока еще я не смог придумать, что я пытался params.delete, не кости, я знаю, должен быть простым способом очистить их от URL-адреса в link_to, но я не могу понять это.

+0

Похоже, вы мутируете значение 'params'. Вы уверены, что используете с ним 'merge', а не' merge! 'Или' update'? – qerub

+0

действительно не понимали проблему, они сохраняются между двумя разными взглядами? или проблема возникает, когда вы нажимаете ссылку «Все»? – Castilho

+0

Не использовать слияние! или обновления. Проблема в том, что они сохраняются в каждом link_to (даже в разных контроллерах) во всем приложении, и на данный момент я не смог их очистить. – user1214966

ответ

0

Я понял, что эти ссылки для всей моей навигации находятся в моем приложении application.html.erb, поэтому любые параметры, которые я там использую, переносятся по всему приложению. Я до сих пор не понял, почему. Я переместил эти ссылки в файл index.html.erb в work_orders, и теперь все остальное работает.

Смежные вопросы