我正在研究一种小型轨道引擎,我已经变成了一块宝石。为了管理数据库,我想使用ActiveAdmin。
我已将ActiveAdmin添加到我的gem依赖项列表中,当我在我的应用程序中安装gem时,我将active_admin初始化程序复制到使用gem的项目中的config / initializers /。
但是 - 由于某种原因,这会导致应用程序失败并显示错误:
uninitialized constant ActiveAdmin
如果我将“activeadmin”添加到项目Gemfile中它运行得很好 - 但这是错误的,我不明白为什么我需要这样做。我希望我的宝石尽可能孤立。
欢迎任何帮助。
答案 0 :(得分:2)
您可能需要手动从gem的rails(Rails 3.x)或初始化程序(Rails 2.x)中获取activeadmin。将config / initializers / active_admin.rb也移动到引擎也是明智之举。对于Rails 3.x这样的东西(把它放到lib / my_gem / engine.rb中)
require 'activeadmin'
class MyGem::Engine < Rails::Engine
initializer do
# Do the same what you did in config/initializers/ of rails project
end
end
答案 1 :(得分:0)
MyModule :: Admin是你的班级吗?宝石的路径是什么?如果它不在app / dir中,您可能需要将以下内容添加到lib / my_module.rb
module MyModule extend ActiveSupport::Autoload autoload :Admin end