我有我的根路线
root :to => 'home#index'
这是我的家庭控制器,如果我访问http://localhost:3000/
所有工作都很棒我打了正确的家庭控制器和索引操作。然后我安装了这个gem rails_admin但是当我访问http://localhost:3000/admin
时,我点击了我的应用程序控制器中的方法
rescue_from CanCan::AccessDenied do |exception|
redirect_to root_path, :alert => exception.message
end
并得到此错误,现在我有可能出现路由错误......任何想法
Routing Error
No route matches {:controller=>"home"}
答案 0 :(得分:4)
如果您在引擎内引用应用的路线或config/initializers/rails_admin.rb
,则应在其前面添加main_app.
redirect_to main_app.root_path, :alert => exception.message
答案 1 :(得分:3)
我认为问题在于rails_admin引擎中没有HomeController,它有自己的路由,不知何故它停在那里(因为引擎中没有这样的控制器)。我尝试使用:
redirect_to root_url
甚至是
redirect_to '/'
这最后一种方式意味着rails不必通过调用URL来尝试找出路径,并且在使用Engines时可能更安全。
答案 2 :(得分:-1)
看起来您没有定义家庭控制器。
尝试在“root”定义上方添加以下内容:
resources :home, :only => :index
我还建议阅读Rails网站上的official Routes guide。