Ошибка маршрутизации в рельсах при использовании current_page? - PullRequest
5 голосов
/ 30 августа 2011

Я пытаюсь добавить некоторые условные теги открытого графика в свое приложение, используя current_page, но получаю ошибку маршрутизации:

Вот что я получаю rake routes

product GET    /products/:id(.:format)    {:action=>"show", :controller=>"products"}

И это в моем частичном:

<% if current_page?(:controller => 'products', :action => 'show') %>
...
<% end %>

Но я получаю:

Routing Error

No route matches {:controller=>"products", :action=>"show"}

Я пытался использовать product и products, но ни один из них не работает. Есть мысли?

1 Ответ

5 голосов
/ 30 августа 2011

Вы также должны передать идентификатор:

<% if current_page?(:controller => 'products', :action => 'show', :id => params[:id]) %>

ОБНОВЛЕНИЕ:

Но, однако, эта реализация предполагает, что страницы, которые представляют этот частичный, имеют идентификаторкак парам.Если они этого не делают, лучше использовать для этого локальную переменную.

render :partial => 'blah_blah', :locals => {:id_for_route_verification => params[:id] || 0}

, а при частичном использовании - новую локальную переменную

<% if current_page?(:controller => 'products', :action => 'show', :id => id_for_route_verification) %>

Я знаю, что это довольно наивноНо, во-первых, вы должны рассмотреть возможность использования content_for для визуализации содержимого внутри частично условно, а не путем current_page? подхода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...