Rails:Apache:Passenger: Circular Dependency Error, A DeviseC



我正在尝试在我的VPS上部署我的rails应用程序,但我在/var/log/httpd/error_log说时出错

`Circular dependency detected while autoloading constant DeviseController     (RuntimeError)
/home/user/.gem/ruby/2.4.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:509:in 'load_missing_constant'
/home/user/.gem/ruby/2.4.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:203:in 'const_missing'
/home/user/.gem/ruby/2.4.0/gems/devise-4.2.1/app/controllers/devise/registrations_controller.rb:1:in '<top (required)>'....`

我已经搜索了谷歌和必应,但一无所获。我也不完全理解这个错误。创建了一个基本导轨应用程序,它起作用了。估计说全系统都很好。设计 gem 已安装在系统上,并且运行bundler install且没有错误。还运行rake db:migrate以安装数据库中的所有内容。我怀疑系统上一切正常,但我的应用程序中有问题,或者我需要在设计中添加一些东西,但是什么??

在我的应用程序中,它非常简单。该应用程序允许人们注册和登录。我不使用邮寄功能,它只有设计使用的标准user成员资格。尚未在设计中设置管理员角色。它的所有默认配置。

以防万一我的 Apache 配置是

`<VirtualHost myapp.tk:80>
ServerName myapp.tk
ServerAlias www.myapp.tk
DocumentRoot "/srv/http/myapp/public"
ErrorLog "/var/log/httpd/myapp.tk-error_log"
CustomLog "/var/log/httpd/myapp.tk-access_log" common
PassengerRuby /usr/bin/ruby
RailsEnv production
<Directory "/srv/http/myapp/public">
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>`

服务器设置是在 Archlinux 上运行的 Apache/Passenger 。所有这些都是最新版本,包括宝石。

如果我错过了所需的任何日志文件或信息,请告诉我。似乎是一个简单的问题,但是

你可以尝试添加这个

config.autoload_paths += Dir["#{config.root}/lib/**/"]

Ruby 在 $LOAD_PATH 中列出的目录中查找该文件。也就是说,Ruby 遍历其所有目录,并为每个目录检查它们是否有一个名为"erb.rb"或"erb.so"的文件。如果找到其中任何一个,解释器将加载它并结束搜索。否则,它会在列表的下一个目录中重试。如果列表用尽,则会引发 LoadError。

inject Rack::Lock if config.eager_load is false

如果代码不是预先加载的,则按需加载常量。不断 自动加载不是线程安全的,因此如果未启用预先加载 不应允许多线程

最新更新