Включить ActiveAdmin в гем - PullRequest
       34

Включить ActiveAdmin в гем

1 голос
/ 13 декабря 2011

Я работаю над маленьким рельсовым двигателем, с которым я превратился в драгоценный камень. Для управления базой данных я хочу использовать ActiveAdmin.

Я добавил ActiveAdmin в свой список гем-зависимостей, и когда я устанавливаю гем в свое приложение, я копирую инициализатор active_admin в config / initializer / в проекте, который использует гем.

Однако - по какой-то причине это приводит к сбою приложения с ошибкой:

uninitialized constant ActiveAdmin

Если я добавлю «activeadmin» в проекты Gemfile, он будет работать отлично, но это неправильно, и я не понимаю, зачем мне это нужно. Я хочу, чтобы мой драгоценный камень был как можно более изолированным.

Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Вам может потребоваться вручную потребовать activeadmin от Railtie вашего драгоценного камня (Rails 3.x) или инициализатора (Rails 2.x). Также может быть целесообразно перенести ваш 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 голосов
/ 14 декабря 2011

Является ли MyModule :: Admin вашим классом? Каков его путь в драгоценном камне? Если его нет в app / dir, вам может понадобиться добавить следующее в lib / my_module.rb

    module MyModule
      extend ActiveSupport::Autoload
      autoload :Admin
    end
...