Как избежать рейк-активов: прекомпилировать, чтобы загрузить все приложение на рельсы 4.2.11? - PullRequest
1 голос
/ 29 апреля 2019

У меня есть файл динамического маршрута, который определяет ограничения с использованием базы данных.

XXX::Engine.routes.draw do
  scope '(:locale)', locale: /#{I18n.available_locales.join('|')}/ do
    get "/:intent-:currency", to: 'offers#index', constraints: { intent: /deposit|withdraw/, currency: load_from_database }
  end
end

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

rake assets:precompile загружает все приложение, и в моем CI еще нет базы данных.Если я попытаюсь запустить rake db:create && rake db:migrate, он все равно попытается загрузить приложение, оставив меня застрявшим, так как мне нужна база данных для динамических маршрутов, но я не могу перенести базу данных, поскольку она загружает приложение

, в котором я нуждаюсьчтобы найти способ не rake assets:precompile не загружать все приложение или, по крайней мере, избегать соединения с базой данных, пока выполняется прекомпиляция

Адаптер NullDb, кажется, работает, но должен быть другой способ, так как я нехочу добавить больше драгоценных камней в свой проект

Я должен иметь возможность запускать rake assets:precompile без загрузки приложения (загружен файл route.rb, и он зависит от базы данных, поэтому он потерпит неудачу, так как на моем конвейере мне нужнопрекомпиляция перед)

1 Ответ

0 голосов
/ 29 апреля 2019

Gem NullDb показался заманчивым, но я предпочитаю избегать добавления драгоценных камней в мои проекты

Это сработало для меня. Отвечая на мой собственный вопрос, потянув меня за волосы в течение дня

XXX::Engine.routes.draw do
  scope '(:locale)', locale: /#{I18n.available_locales.join('|')}/ do
    get "/:intent-:currency", to: 'offers#index', constraints: { intent: /deposit|withdraw/, currency: load_from_database } unless defined?(::Rake::SprocketsTask)
  end
end
...