【发布时间】:2021-02-01 20:38:31
【问题描述】:
我有一个托管在 heroku 上的 ruby on rails 应用程序。当我尝试创建一个以“开发”模式运行它的项目时,一切正常,没有问题。但是,当我将应用程序切换为在“生产”模式下运行时,我得到以下信息。
这是升级到 2.5.x 的 Ruby 2.2.x 和升级到 5.2 的 rails 4.1。
关于为什么这在生产中失败但在开发中运行良好的任何想法或建议?
Started POST "/items" for 1.2.3.4 at 2020-10-19 03:22:06 +0000
2020-10-19T03:22:06.870055+00:00 app[web.1]: Processing by ItemController#create as HTML
2020-10-19T03:22:06.870358+00:00 app[web.1]: Parameters: {###Redacted##}
2020-10-19T03:22:06.926046+00:00 app[web.1]: Completed 500 Internal Server Error in 54ms (ActiveRecord: 15.8ms)
2020-10-19T03:22:06.999133+00:00 app[web.1]: I, [2020-10-19T03:22:06.998984 #11] INFO -- : Sending event 18b887c876d4524b5cd46849a98aaeb1 to Sentry
2020-10-19T03:22:07.271068+00:00 app[web.1]:
2020-10-19T03:22:07.271478+00:00 app[web.1]: NameError (uninitialized constant #<Class:0x0000567238d68165>::Slug):
2020-10-19T03:22:07.276183+00:00 app[web.1]:
2020-10-19T03:22:07.276248+00:00 app[web.1]: app/models/item.rb:305:in `name_to_slug'
2020-10-19T03:22:07.276248+00:00 app[web.1]: app/models/item.rb:293:in `generate_slug'
【问题讨论】:
-
您可以使用
heroku run rails cSSH 进入生产框,然后尝试手动运行导致错误的代码。这将向您显示有关正在发生的事情的更多信息。它可能必须做一个不需要的文件或其他东西 - 我不记得确切的细节,但我认为开发和生产可以以不同的顺序加载文件或其他东西。也许你只是在某个地方需要一个额外的require。 -
您是否缺少生产环境变量? devcenter.heroku.com/articles/config-vars
-
@ToddA.Jacobs 我不这么认为......如果我将 RACK_ENV 和 RAILS_ENV 从生产更改为开发,它会按预期工作。
标签: ruby heroku ruby-on-rails-4 ruby-on-rails-5