Я развертываю приложение Rails 3.1 в стек кера Героку. С Heroku Cedar и Rails 3.1 вы можете сами компилировать активы самостоятельно, пусть Heroku скомпилирует их, когда вы нажимаете (во время "компиляции слизняков" ) или их компилируете просто во время работы приложения. Я хочу сделать средний вариант, позволяя Heroku прекомпилировать активы.
Когда Heroku запускает активы: прекомпиляционная задача, ошибки с "не могут подключиться к серверу" , потому что приложение пытается подключиться к базе данных, но база данных отсутствует доступный на этом этапе компиляции пули. Отсутствие соединения с базой данных ожидается и неизбежно на данный момент. Я ищу способ пройти мимо него, потому что соединение с базой данных не имеет решающего значения для предварительной компиляции ресурсов.
Часть моего приложения, которое пытается подключиться к базе данных, - Devise. В строке маршрутов route.rb есть строка devise_for :users
, которая хочет посмотреть модель User.
Я мог бы просто написать граблиную задачу, которая заглушает devise_for и сделает ее предпосылкой для активов: precompile. Я думаю, что это решило бы мою проблему, но Я ищу более универсальное решение, которое я мог бы использовать в любом приложении Rails 3.1 с этой проблемой на Heroku.
Есть ли что-нибудь там, или вы можете понять что-либо, что затмевает ошибки подключения к базе данных, при этом все еще работает приложение достаточно, чтобы генерировать маршрут и путь к ресурсам?
Очевидно, что если приложение должно читать/записывать данные во время запуска, мы не можем его заглушить, но можем ли мы автоматически подделывать каждую модель ActiveRecord?