我想將app/admin
文件夾中的部分代碼移至外部寶石。如何將ActiveAdmin.register_page移動到gem?
我已經嘗試了幾次,但不是很成功 - ActiveAdmin中的頁面沒有顯示出來。
有人能指點我嗎?
我想將app/admin
文件夾中的部分代碼移至外部寶石。如何將ActiveAdmin.register_page移動到gem?
我已經嘗試了幾次,但不是很成功 - ActiveAdmin中的頁面沒有顯示出來。
有人能指點我嗎?
最後,找到了解決辦法。
要將您的自定義頁面添加到寶石內的activeadmin
,您需要使用ActiveAdmin.before_load
和load_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
我要說的是,你的寶石文件結構應該probabily看起來像成才
your_gem
└── lib
├── admin
│ └── some_model.rb
└── your_gem.rb
和文件your_gem.rb
應該包含require 'admin/some_model'
我想,如果我在寶石內使用引擎,那麼我可以使用rails應用程序的默認結構,比如'app/...'。多次測試。 –
在這裏使用引擎沒有任何優勢。你只是想在你的應用程序之外移動一些文件。只要該文件調用「ActiveAdmin.register」並加載,應該可以正常工作。 –
該引擎提供了很多優勢,其中最有價值的還是將資產移動到寶石上的能力。您可以將所有需要的文件保存在一個地方。 –
你能更具體嗎?你有什麼嘗試? –
我試圖用引擎創建gem,並在其中創建'app/admin'文件夾,並用activeadmin頁面的所有默認代碼創建文件'page.rb'。 –