2014-02-18 20 views
0

我想將app/admin文件夾中的部分代碼移至外部寶石。如何將ActiveAdmin.register_page移動到gem?

我已經嘗試了幾次,但不是很成功 - ActiveAdmin中的頁面沒有顯示出來。

有人能指點我嗎?

+0

你能更具體嗎?你有什麼嘗試? –

+0

我試圖用引擎創建gem,並在其中創建'app/admin'文件夾,並用activeadmin頁面的所有默認代碼創建文件'page.rb'。 –

回答

0

最後,找到了解決辦法。

要將您的自定義頁面添加到寶石內的activeadmin,您需要使用ActiveAdmin.before_loadload_paths屬性。

module Test 
    class Engine < Rails::Engine 
    initializer "active_admin" do |app| 
     ActiveAdmin.before_load do |app| 
     app.load_paths << File.expand_path("../../../app/admin", __FILE__) 
     end 
    end 
    end 
end 
0

我要說的是,你的寶石文件結構應該probabily看起來像成才

your_gem 
└── lib 
    ├── admin 
    │   └── some_model.rb 
    └── your_gem.rb 

和文件your_gem.rb應該包含require 'admin/some_model'

+0

我想,如果我在寶石內使用引擎,那麼我可以使用rails應用程序的默認結構,比如'app/...'。多次測試。 –

+0

在這裏使用引擎沒有任何優勢。你只是想在你的應用程序之外移動一些文件。只要該文件調用「ActiveAdmin.register」並加載,應該可以正常工作。 –

+0

該引擎提供了很多優勢,其中最有價值的還是將資產移動到寶石上的能力。您可以將所有需要的文件保存在一個地方。 –