我正在尝试使用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
,但似乎都没有用。有什么想法吗?
答案 0 :(得分:5)
你也应该传递id:
<% if current_page?(:controller => 'products', :action => 'show', :id => params[:id]) %>
<强>更新强>
但是,但是,此实现假定呈现此部分的页面具有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?
方法