4

我有我的根路线

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"}
4

3 回答 3

4

如果您在引擎或 中引用应用程序的路由config/initializers/rails_admin.rb,则应为其添加前缀main_app.

redirect_to main_app.root_path, :alert => exception.message

于 2012-01-19T10:07:03.787 回答
3

我认为问题在于 rails_admin 引擎中没有 HomeController 有它自己的路由,并且不知何故它停在那里(因为引擎中没有这样的控制器)。我会尝试使用:

redirect_to root_url

甚至这个

redirect_to '/'

最后一种方式意味着 rails 不必尝试通过调用 URL 来找出路径,并且在使用引擎时可能更安全。

于 2011-10-06T03:35:12.990 回答
-1

看起来你没有定义你的家庭控制器。

尝试将其添加到您的“根”定义之上:

resources :home, :only => :index

我还建议阅读Rails 网站上的官方路线指南。

于 2011-10-06T02:35:38.367 回答