Приложение не загружается на heroku, не может расшифровать логи heroku, чтобы сказать, в чем ошибка - PullRequest
0 голосов
/ 06 декабря 2018

[Обновление: у меня есть синтаксическая ошибка в моем файле comment_update_job.rb, и я сейчас устраняю неисправность] Я прохожу онлайн-курс по Rails, и мое приложение внезапно перестало работать.Может кто-нибудь, пожалуйста, помогите указать мне правильное направление для расшифровки логов героку?

Вот мой файл comment_update.job.rb

class CommentUpdateJob < ApplicationJob
  queue_as :default

  def perform(comment, current_user)
    ProductChannel.broadcast_to(comment.product_id, comment: render_comment(comment, current_user), average_rating: comment.product.average_rating)
  end

private

  def render_comment(comment, current_user)
    CommentsController.render(partial: 'comments/comment', locals: { comment: comment, current_user: current_user })
  end

end

Вот мой журнал heroku:

2018-12-06T16:09:16.954955+00:00 app[web.1]: => Booting Puma
2018-12-06T16:09:16.954980+00:00 app[web.1]: => Rails 5.2.1 application starting in production
2018-12-06T16:09:16.954982+00:00 app[web.1]: => Run `rails server -h` for more startup options
2018-12-06T16:09:16.957071+00:00 app[web.1]: /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require': /app/app/jobs/comment_update_job.rb:12: syntax error, unexpected end-of-input, expecting keyword_end (SyntaxError)
2018-12-06T16:09:16.957089+00:00 app[web.1]: end

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Перед тем, как редактировать свой вопрос, вы показали:

class CommentUpdateJob < ApplicationJob
  queue_as :default

  def perform(comment, current_user)
    ProductChannel.broadcast_to(comment.product_id, comment: render_comment(comment, current_user), average_rating: comment.product.average_rating)
  end

  private

  def render_comment(comment, current_user)
    CommentsController.render(partial: 'comments/comment', locals: { comment: comment, current_user: current_user })
  end

Отсутствует end.Это должно быть:

class CommentUpdateJob < ApplicationJob
  queue_as :default

  def perform(comment, current_user)
    ProductChannel.broadcast_to(comment.product_id, comment: render_comment(comment, current_user), average_rating: comment.product.average_rating)
  end

  private

  def render_comment(comment, current_user)
    CommentsController.render(partial: 'comments/comment', locals: { comment: comment, current_user: current_user })
  end

end

Кстати, по моему config/environments/development.rb, мне нравится устанавливать:

config.eager_load = true

Это будет стоить вам времени при запуске.Но это создает более точное соответствие между производственной средой и средой разработки и, как правило, приводит к появлению ошибок в процессе разработки, которые в противном случае не возникали бы до тех пор, пока вы не развернете Heroku.ИМО, дополнительное время запуска в разработке более чем компенсируется за счет экономии времени неудачных развертываний в Heroku.

0 голосов
/ 06 декабря 2018

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

Я предлагаю вам использовать PostgreSQL с платформой heroku, которую он очень хорошо интегрировал и там- это бесплатная версия Hobbistic, которая позволяет вам тестировать и полностью использовать ваше приложение для постановки.

Найдите ENV_VARIABLES на вашей панели инструментов heroku (например, в режиме разработки / разработки и других).

Надеюсь, что этовещь может вам помочь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...