2017-04-04 2 views
0

Ich versuche, meine Rails-Anwendung auf meinem VPS zu implementieren, aber ich bekomme die Fehler in /var/log/httpd/error_log sagenRails: Apache: Passagier: Kreisabhängigkeitsfehler, A DeviseController (Runtime)

`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)>'....` 

Ich habe gesucht Google und Bing und nirgendwohin kommen. Ich verstehe diesen Fehler auch nicht vollständig. Erstellt eine Basisschienen App und es hat funktioniert. Es ist systemweit gut, dieses Sprichwort zu überdenken. Das Gerät Juwel ist auf dem System installiert und hat bundler install und keine Fehler ausgeführt. Außerdem lief rake db:migrate, um alles in der Datenbank zu installieren. Ich vermute, alles in Ordnung auf dem System, aber etwas in meiner App ist falsch oder ich muss etwas in Geräte hinzufügen, aber was?

In meiner App ist es sehr einfach. Die App ermöglicht Menschen sich zu registrieren und einzuloggen. Ich benutze nicht die Mailing-Funktion und es hat nur die Standard user Mitgliedschaft, die Verwendung verwenden. Richten Sie die Administratorrolle nicht in devise ein. Es sind alle Standardkonfigurationen.

Nur für den Fall meiner Apache config

`<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>` 

Der Server Setup Apache/Passagier ist auf Archlinux läuft. Alle sind die neuesten Versionen einschließlich der Edelsteine.

Lassen Sie mich wissen, wenn ich irgendwelche Protokolldateien oder benötigte Informationen verpasst habe. Schien wie ein einfaches Problem, aber

Antwort

0

Sie versuchen, diese

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

Rubin sucht nach der Datei in den aufgelisteten Verzeichnisse in $ LOAD_PATH hinzufügen können. Das heißt, Ruby iteriert über alle seine Verzeichnisse und prüft für jede von ihnen, ob sie eine Datei namens "erb.rb" oder "erb.so" haben. Wenn es eines von ihnen findet, lädt der Interpreter es und beendet die Suche. Ansonsten versucht es erneut im nächsten Verzeichnis der Liste. Wenn die Liste erschöpft ist, wird LoadError ausgelöst.

inject Rack::Lock if config.eager_load is false 

Wenn der Code nicht geladen ist, werden geladene Konstanten bei Bedarf geladen. Constant autoloading ist nicht thread-sicher, wenn also eifrig laden nicht aktiviert ist multi-threading sollte nicht erlaubt sein

+0

Sorry, aber welche Datei oder Dateien würde ich diese Zeilen hinzufügen? – deskmonkey

+0

Sie können diese erste Zeile 'config/application.rb' hinzufügen –

+0

Vielen Dank für Ihre Antwort. Ich habe es der Datei hinzugefügt und die App 'touch tmp/restart.txt' neu gestartet und Apache neu gestartet, aber immer noch den Fehler ohne Änderungen erhalten. – deskmonkey

Verwandte Themen