Простое тестовое приложение развертывается в Heroku, но не запускается

#ruby-on-rails #heroku

#ruby-on-rails #heroku

Вопрос:

Я новичок в Heroku. Я попытался запустить простое тестовое приложение Rails 3.1.1 в Heroku. Единственными изменениями, которые я внес в него из «нового» шаблона приложения Rails, было создание домашнего контроллера и указание root на home#index . Я также запустил

 rails g scaffold Mark type:string start_time:datetime end_time:datetime subject:string measure:float special_event:boolean flag:boolean in_progress:boolean
  

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

 source 'http://rubygems.org'

gem 'rails', '3.1.1'

group :development do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

group :assets do
  gem 'sass-rails',   '~> 3.1.4'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'
  

Для этого я следовал руководству Heroku. Нажатие сработало, сообщений об ошибках не поступало. Я запустил heroku rake db:migrate heroku addons:add logging . Я также удалил public/index.html из приложения. Когда я запускаю приложение локально с rails server , оно работает нормально. Я также могу вручную перейти к индексу «метки» в зависимости от каркаса.

Когда я запускаю heroku open , все, что я получаю, это стандартная We're sorry, but something went wrong. страница Rails. heroku logs мне вообще ничего не показывает.

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

Комментарии:

1. Неужели в логах heroku вообще ничего нет? Вы должны хотя бы видеть запросы, которые вы делаете.

2. Вообще ничего. Я набираю heroku logs , возникает пауза, а затем я вижу следующую командную строку.

3. Я бы обратился в службу поддержки Heroku — здесь что-то не так.

4. Да, я, вероятно, сделаю это. Спасибо.

5. Причиной вашей проблемы, установленной config.assets.enabled = false в вашем application.rb, будет конвейер ресурсов, который включен по умолчанию.rb. Смотрите мой ответ ниже.

Ответ №1:

Проблема здесь в том, что конвейер ресурсов Rails 3.1 не работает «из коробки» на Bamboo-mri-1.9.2, который используется по умолчанию при выполнении heroku create .

Решение состоит в том, чтобы сделать heroku create --stack cedar , а затем нажать — тогда все будет хорошо 🙂

Комментарии:

1. обратите внимание, что при переходе на cedar нужно будет выполнить heroku run rake db:migrate. Ты получишь glowing-stone-9665.herokuapp.com/marks когда вы его запускаете.

2. Спасибо! Я понятия не имел, в чем проблема, и, возможно, никогда с этим не сталкивался.

Ответ №2:

Попробуйте сделать это просто для того, чтобы посмотреть, работает ли это:

 rails new stackoverflow
cd stackoverflow/
git init
git add .
git commit -m 'all'
git remote add origin git@github.com:noahc/stackoverflow.git #you'll need to change this
git push origin master
heroku create
git push heroku master
heroku open
  

Если это не сработает, значит, это как-то связано с вашим локальным компьютером. Я только что пробежался по этому вопросу, и с моей стороны это работает. Смотрите: http://gentle-dawn-1050.heroku.com . Если это не приведет к сбою, я бы попробовал внести изменения в GemFile и посмотреть, сможете ли вы таким образом вывести его из строя.

Комментарии:

1. Хм… Это работает. Позвольте мне снова запустить мой Heroku acct и попробовать еще раз с ванильным приложением с миграцией.

2. Если я добавлю миграцию и запущу heroku rake:db:migrate , то миграция, похоже, пройдет хорошо. heroku open однако снова показывает мне страницу «Мы сожалеем …». Мой файл gem не содержит ничего, кроме исходной строки по умолчанию, gem 'rails', '3.1.1' и gem 'pg' . pg Не подходит ли gem для использования в качестве адаптера базы данных? Вот репозиторий: https://github.com/ccheaton/herokutest

Ответ №3:

У меня была такая же проблема. Похоже, вы добрались до сути своей проблемы, но для будущих проблемников я хочу указать, что это может быть несоответствие между базой данных, которую вы используете для своего локального приложения, и той, которая стоит за живым приложением. В моем случае моя локальная база данных была заполнена, а мой сайт Heroku был пуст, поскольку я не провел надлежащую миграцию.

Эта проблема стала очевидной только тогда, когда я запустил «rake db: reset» в терминале (чтобы очистить все данные в базе данных моего локального приложения), после чего я смог легко найти ошибки в своем коде.

Вывод: если информации в вашей базе данных ничтожно мало, я бы посоветовал очистить ее и устранить неполадки оттуда, потому что, возможно, на развернутом вами сайте просто еще нет данных, и, возможно, ваш код неправильно обрабатывает исключения такого рода…….