gpt4 book ai didi

ruby-on-rails - Puma:无法加载应用程序:NameError:未初始化的常量

转载 作者:行者123 更新时间:2023-12-05 06:40:30 31 4
gpt4 key购买 nike

当我尝试将 rails 应用程序部署到 Heroku 时,出现此错误:

Puma starting in single mode...
2017-02-27T15:08:03.908788+00:00 app[web.1]: * Version 3.7.0 (ruby 2.3.1-p112), codename: Snowy Sagebrush
2017-02-27T15:08:03.908789+00:00 app[web.1]: * Min threads: 5, max threads: 5
2017-02-27T15:08:03.908790+00:00 app[web.1]: * Environment: production
2017-02-27T15:08:05.942041+00:00 app[web.1]: ! Unable to load application: NameError: uninitialized constant Api::V1::AController
2017-02-27T15:08:05.942133+00:00 app[web.1]: bundler: failed to load command: puma (/app/vendor/bundle/ruby/2.3.0/bin/puma)
2017-02-27T15:08:05.942266+00:00 app[web.1]: NameError: uninitialized constant Api::V1::AController

Here is the link to the full log

如果我尝试在我的开发环境中运行以下代码,一切正常:

bundle exec puma -C config/puma.rb

我使用 -e 生产标志在我的本地机器上运行 rails,它运行正常,没有出现错误。只有当我部署到 Heroku 时才会发生这种情况。

puma.rb

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup DefaultRackup
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
ActiveRecord::Base.establish_connection
end

我尝试过的:

  1. 在 Heroku 上创建了一个新实例,以确保当前实例没有问题
  2. 测试了多个版本的 Puma
  3. 检查 development.rbproduction.rb 看看有什么不同

我现在在做什么:

  1. 遍历每次提交以查找应用中的更改并尝试找出应用的原因

我相信我把问题复杂化了......对此有什么想法吗?

最佳答案

通过将所有环境变量设置为与 Heroku 上相同的值,尝试在本地计算机上重现此问题。或者至少设置 puma 使用的所有变量:

RAILS_ENV=production RACK_ENV=production WEB_CONCURRENCY=1 RAILS_MAX_THREADS=5 bundle exec puma -C config/puma.rb

我还注意到您正在使用线程。是故意的吗?我的意思是 ruby​​ 生态系统并不以线程安全而闻名。尝试将 RAILS_MAX_THREADS 更改为 1 并将 WEB_CONCURRENCY 提高到更高的数字。

关于ruby-on-rails - Puma:无法加载应用程序:NameError:未初始化的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42490085/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com