2011-12-13 36 views
1

我正在使用一个小型导轨引擎,我已经变成了一块宝石。为了管理数据库,我想使用ActiveAdmin。在gem中包含ActiveAdmin

我已经将ActiveAdmin添加到我的gem依赖列表中,并且当我在应用程序中安装gem时,我将active_admin初始化程序复制到使用gem的项目中的config/initializers /。

然而 - 由于某种原因,这使得应用程序失败,出现错误:

uninitialized constant ActiveAdmin 

如果我添加“activeadmin”到项目的Gemfile它的伟大运行 - 但这是错误的,我不明白为什么我需要这样做。我希望我的宝石尽可能地孤立。

任何帮助,欢迎。

+0

我想你没有重启服务器。是吗? – Ninad 2012-02-02 11:14:02

回答

2

您可能需要从您的gem railtie(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 
+0

谢谢。我不得不承认,当我意识到自己忘了需要时,我只是在吃晚餐。但是,谢谢你回答:) 但是 - 如果你不介意,我确实有一个后续问题。我添加了需求部分,但现在我得到这个错误:“未初始化的常量MyModule :: Admin”。 – Markus 2011-12-14 04:50:05

+0

我有同样的问题,我不知道如何解决它 – Papipo 2012-01-20 11:31:59

0

是MyModule :: Admin你的类吗?它在宝石中的路径是什么?如果它不在app/dir中,则可能需要将以下内容添加到lib/my_module.rb中

 
    module MyModule 
     extend ActiveSupport::Autoload 
     autoload :Admin 
    end