rails 引擎中的 ActiveAdmin 给我这个错误:未初始化的常量 MyEngine::Admin

问题描述 投票:0回答:1

我在主应用程序中安装的 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"

有人可以帮忙吗?

ruby-on-rails ruby activeadmin rails-engines
1个回答
0
投票

未初始化的常量错误意味着它找不到 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
,您正在挂载的管理路由命名空间是否正确?当您“尝试访问主页”时,您会选择哪条路线?您的应用程序在开发服务器日志中给您提供了什么反馈?

© www.soinside.com 2019 - 2024. All rights reserved.