我在主应用程序中安装的 Rails 引擎中安装了 activeadmin。当我尝试访问主页时出现以下错误:未初始化常量 BackOffice::Admin
lib/back_office/engine.rb中的代码
`需要‘设计’ 需要“activeadmin”
后台模块 引擎类 < ::Rails::Engine isolate_namespace BackOffice
initializer :back_office do
ActiveAdmin.application.load_paths += Dir[File.dirname(__FILE__) + '/back_office/admin']
end
结束 结尾 `
路线.rb
BackOffice::Engine.routes.draw do devise_for :admin_users, class_name: "BackOffice::AdminUser" ActiveAdmin.routes(self) end
在我的主应用程序的routes.rb 文件中,我有以下内容:
mount BackOffice::Engine, at: "/back_office"
有人可以帮忙吗?
未初始化的常量错误意味着它找不到 BackOffice::Admin,所以首先 - 该常量是在您的引擎中定义的吗?或者您是否在
back_office
命名空间下定义 Admin,而不将其嵌套在 BackOffice 模块父级中?如果启动 Rails 控制台并输入 BackOffice::Admin
,它能够解析类常量吗?
这样的东西有用吗?
initializer :back_office do
ActiveAdmin.application.load_paths << root.join('back_office/admin')
end
尝试在初始化程序中放置一个绑定,并验证
root.join('back_office/admin')
是否正在构建您期望的路径。您可能还需要添加 before
或 after
参数,以确保您的操作在 ActiveAdmin 初始化流程中的正确时间运行。
如果您运行
bundle exec rails routes
,您正在挂载的管理路由命名空间是否正确?当您“尝试访问主页”时,您会选择哪条路线?您的应用程序在开发服务器日志中给您提供了什么反馈?