2011-12-13 20 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 
相關問題