“No routes matches” when using current_page in Rails 3

大兔子大兔子 提交于 2019-11-28 07:14:14

问题


Has anybody experienced routes mysteriously becoming undetectable when using current_page? in Rails 3? Even with a fully generated scaffold complete with routes, a view, and a controller, I am getting a "No route matches" error.

Here's the code:

if current_page?(:controller => 'users', :action => "show")

If I add a "match" command to routes.rb, it works fine, but why would I need to do that if the resources have already been created? What am I missing?


回答1:


You're missing the id parameter from this helper:

current_page?(:controller => "users", :action => "show", :id => "1")

It expects you to pass a full route through. If you don't want this and only want to match on the controller and action then I would recommend coding your own.




回答2:


If you just want to test the current controller, you can do the following:

if params[:controller] == 'users'

Similarly, if you're using a namespaced controller, you can just use a slash to separate the namespace(s) from the controller name, e.g.:

if params[:controller] == 'advertising/users'


来源:https://stackoverflow.com/questions/5627958/no-routes-matches-when-using-current-page-in-rails-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!