【问题标题】:Active Admin uninitialized constant Admin::DashboardControllerActive Admin 未初始化常量 Admin::DashboardController
【发布时间】:2013-06-11 18:03:27
【问题描述】:

我刚刚将一个 Rails 应用程序迁移到 3.1。活动管理员现在是 0.6.0。那是我的路线。rb

AppName::Application.routes.draw do
  root :to => "homepage#index"

  devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)

所以 root 在 ActiveAdmin 路由之前声明。我们在开发中启动服务器并重新加载浏览器我在这里得到 ActiveAdmin 界面:

http://localhost:3000/admin

当我重新加载该 URL 时,我得到:

uninitialized constant Admin::DashboardController

【问题讨论】:

    标签: ruby-on-rails-3.1 activeadmin


    【解决方案1】:

    我发现了几个问题:

    1. 资产生成器最好在更新后执行;
    2. 控制器/管理员与 ActiveAdmin 路由发生冲突;
    3. 根指令应该在 ActiveAdmin 路由之前定义。

    修复第一:

    $> rails generate active_admin:assets
    

    解决第二个问题:

    config.default_namespace = :your_desired_namespace
    

    要修复第三个问题,只需向上移动根目录(在 config/routes.rb 中)

    【讨论】:

    • 为我解决了一些问题,但我仍然收到 No route matches [GET] "/admin/authentications" ...我曾经拥有自己的 admin_controller,但我已将其重命名,所以它不应该冲突。但是我已经尝试按照您的建议更改名称空间,但仍然出现路由错误。还有什么想法吗?
    • 由于您重命名了管理控制器,我不会设置 config.default_namespace 并查看您是否可以访问 /admin。这一定是一个简单的错误。我会使用“bundle exec rake routes”并查看生成的路由以了解问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多