@AlexeyMoshkin

Как получить доступ к моделям которые хранятся в геме?

Есть rails-приложение, большая часть которого, в том числе модели, находится в подключаемом геме.
Пишу класс, чтобы использовать его в rake task'e, находится он в /lib. В классе необходим доступ к моделям приложения. Как его получить?
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
lunaticman
@lunaticman
Дерзкий айтишник
давайте предположим что вы пишете your_task.rake файл

вы можете его написать так и загрузить rails окружение по умолчанию (обратите внимание на :environment )
namespace :your_task do
  desc "my description"
  task :my_task => :environment do
    <...>
  end
end


но вы так же можете дропнуть :environment и лично загрузить файл с помощью:
require_relative '../lib/your_path'

namespace :your_task do
  desc "my description"
  task :my_task do
    <...>
  end
end
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
shurik_sh
@shurik_sh
Начинающий программист
Все гемы загружаются в память при инициализации рельсового приложения, соответственно все объекты доступны в коде без дополнительного подключения библиотек. Модель подключаемой библиотеки это обычный руби класс, скорее всего до него можно добраться по полному пути, например SuperGem::SuperAR::SuperModel
Нужно ознакомиться с документацией api гема или посмотреть исходный код, чтобы понять как он работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы