Heroku имеет документ, описывающий «ПРЕДУПРЕЖДЕНИЕ: Обнаруженные рельсы» не объявляются ни в сообщении .gems, ни в Gemfile, а также в месте, назначении и синтаксисе .gems
файла . Его URL указан сразу после самого предупреждающего сообщения:
-----> Heroku receiving push
-----> Rails app detected
-----> WARNING: Detected Rails is not declared in either .gems or Gemfile
Scheduling the install of Rails 2.3.8.
See http://docs.heroku.com/gems for details on specifying gems.
Во-первых, вы должны прислушаться к совету, чтобы объявить ваши гем-зависимости. Поскольку вы используете Rails 2.3, вероятно, проще просто использовать .gems
файл вместо Gemfile
(хотя, если вам нравится идея Bundler , вы все равно можете использовать Gemfile
с рельсами 2.3 ):
# .../project-root/.gems
rails -v 2.3.8
# List any other required gems (and their versions) here
(добавьте и зафиксируйте файл, чтобы Heroku увидел его в следующий раз, когда вы нажмете на него)
Во-вторых, «установка драгоценных камней после каждого нажатия» лежит в основе работы Heroku. Они берут дерево в конце вашей запрошенной истории и компилируют его в «слаг» только для чтения , который может быть быстро развернут на серверах их внутренней сети. Это меняет некоторое «время подталкивания» на «время развертывания».
Такое поведение «строить с нуля при каждом нажатии» было бы довольно раздражающим для обучения / исследования / разработки, когда между небольшими изменениями обычно делаются только небольшие, постепенные изменения приложения, но, кажется, есть способ избежать этого в этих случаях. Просто используйте файл .gems
. Когда заявленные гем-зависимости приложения не изменяются от одного нажатия к другому (то есть без изменений в файле .gems
), они, кажется, пропускают этап «установки всех ваших гем-зависимостей с нуля».
Итог: Включите файл .gems
в ваш проект. Следующее нажатие все равно будет проходить через «Установка рельсов драгоценных камней», но последующие нажатия должны пропустить этот шаг (если вы не измените свой файл .gems
, чтобы изменить свой набор зависимостей от драгоценных камней).