在gem中包含ActiveAdmin

时间:2011-12-13 17:10:32

标签: ruby-on-rails ruby-on-rails-3 rubygems gem activeadmin

我正在研究一种小型轨道引擎,我已经变成了一块宝石。为了管理数据库,我想使用ActiveAdmin。

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

但是 - 由于某种原因,这会导致应用程序失败并显示错误:

uninitialized constant ActiveAdmin

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

欢迎任何帮助。

2 个答案:

答案 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