无法动态地将activeadmin gem添加到autoload_paths

时间:2017-01-18 10:06:46

标签: ruby-on-rails rubygems activeadmin

我正在使用heroku作为我的主应用程序,但现在我将它分离为main_app和admin_app(内存问题)。

所以我有2个应用程序在同一个git repo上运行,没有任何问题。

main_app使用子域管理员。解决admin_app

现在我想在不加载活动管理员的情况下保存一些内存。

我在gemfile中使用一个组

group :admin_app do
  gem 'activeadmin', git: 'https://github.com/activeadmin/activeadmin'
end

和admin.app载入时的application.rb

 Bundler.require(*Rails.groups,:admin_app) 

现在,我有一个位于app / admin上的admin文件夹 得到自动加载所以我必须忽略它,否则我得到一个例外(在main_app上没有active_admin gem)

我通过简单的if语句

解决了这个问题
if Rails.application.secrets.admin_app

ActiveAdmin.register ForumTopic ....

end

我正在寻找更好的解决方案。

我尝试将管理文件夹移动到lib或app文件夹之外,然后将其添加到

config.autoload_paths << Rails.root.join('admin')

但我只是在使用

时看不到它被加载
ActiveSupport::Dependencies.autoload_paths

我想听听你的想法,谢谢

1 个答案:

答案 0 :(得分:3)

我找不到autoload_paths不包含我的文件的原因。

我将active_admin文件添加到'lib'文件夹,然后在

时有条件地要求它们

绘制active_admin路由。