Вы также должны передать идентификатор:
<% 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?
подхода