【问题标题】:Why is my rails route is a bit off?为什么我的 Rails 路线有点偏离?
【发布时间】:2011-10-06 02:28:59
【问题描述】:

我有我的根路线

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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 routes rails-admin


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      redirect_to root_url
      

      甚至这个

      redirect_to '/'
      

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

      【讨论】:

        【解决方案3】:

        您似乎没有定义 Home Controller。

        尝试在你的“根”定义之上添加这个:

        resources :home, :only => :index
        

        我还建议阅读 Rails 网站上的 official Routes guide

        【讨论】:

        • 我在根目录上添加了但我得到了 ActionController::RoutingError (No route matches {:controller=>"home"}): app/controllers/application_controller.rb:5:in `block在 '
        • 这是我的 routes.rb 资源 :home, :only => :index root :to => 'home#index'
        • 在您的应用文件夹中创建rake routes,root_path 路由是否与您的 home#index 匹配?
        • 这是我的路线.... root / {:controller=>"home", :action=>"index"}
        • 尝试重启你的 Rails 服务器。通常,您需要在更改 routes.rb 文件后重新启动。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-18
        • 1970-01-01
        • 2011-04-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多