2017-06-09 2 views
26

enter image description hereRails 5.1: „unbekannt FirstPOS: NilClass“ - Ausgabe Nachladen Anwendung

Nach einem Upgrade von Rails 5,0-5,1 Ich erhalte diese Störung zu jeder Zeit die App neu geladen, entweder von Code-Änderungen während rails server oder wenn ich rufe reload! von der Konsole.

13:53$ rc 
Loading development environment (Rails 5.1.1) 
2.3.1 :001 > reload! 
Reloading... 
ArgumentError: unknown firstpos: NilClass 
    from (irb):1 
2.3.1 :002 > 

https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/journey/gtg/builder.rb

Anwendung Trace ist leer, hier ist das Rahmen Trace:

actionpack (5.1.1) lib/action_dispatch/journey/gtg/builder.rb:99:in `firstpos' 
actionpack (5.1.1) lib/action_dispatch/journey/gtg/builder.rb:22:in `transition_table' 
actionpack (5.1.1) lib/action_dispatch/journey/routes.rb:58:in `simulator' 
actionpack (5.1.1) lib/action_dispatch/journey/router.rb:92:in `simulator' 
actionpack (5.1.1) lib/action_dispatch/journey/router.rb:28:in `eager_load!' 
actionpack (5.1.1) lib/action_dispatch/routing/route_set.rb:382:in `eager_load!' 
railties (5.1.1) lib/rails/application/routes_reloader.rb:26:in `each' 
railties (5.1.1) lib/rails/application/routes_reloader.rb:26:in `execute' 
railties (5.1.1) lib/rails/application/finisher.rb:141:in `block (2 levels) in <module:Finisher>' 
activesupport (5.1.1) lib/active_support/callbacks.rb:413:in `instance_exec' 
activesupport (5.1.1) lib/active_support/callbacks.rb:413:in `block in make_lambda' 
activesupport (5.1.1) lib/active_support/callbacks.rb:197:in `block (2 levels) in halting' 
activesupport (5.1.1) lib/active_support/callbacks.rb:601:in `block (2 levels) in default_terminator' 
activesupport (5.1.1) lib/active_support/callbacks.rb:600:in `catch' 
activesupport (5.1.1) lib/active_support/callbacks.rb:600:in `block in default_terminator' 
activesupport (5.1.1) lib/active_support/callbacks.rb:198:in `block in halting' 
activesupport (5.1.1) lib/active_support/callbacks.rb:507:in `block in invoke_before' 
activesupport (5.1.1) lib/active_support/callbacks.rb:507:in `each' 
activesupport (5.1.1) lib/active_support/callbacks.rb:507:in `invoke_before' 
activesupport (5.1.1) lib/active_support/callbacks.rb:130:in `run_callbacks' 
activesupport (5.1.1) lib/active_support/execution_wrapper.rb:108:in `run!' 
activesupport (5.1.1) lib/active_support/reloader.rb:113:in `run!' 
activesupport (5.1.1) lib/active_support/execution_wrapper.rb:70:in `block in run!' 
activesupport (5.1.1) lib/active_support/execution_wrapper.rb:67:in `tap' 
activesupport (5.1.1) lib/active_support/execution_wrapper.rb:67:in `run!' 
activesupport (5.1.1) lib/active_support/reloader.rb:59:in `run!' 
actionpack (5.1.1) lib/action_dispatch/middleware/executor.rb:10:in `call' 
actionpack (5.1.1) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call' 
actionpack (5.1.1) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call' 
railties (5.1.1) lib/rails/rack/logger.rb:36:in `call_app' 
railties (5.1.1) lib/rails/rack/logger.rb:24:in `block in call' 
activesupport (5.1.1) lib/active_support/tagged_logging.rb:69:in `block in tagged' 
activesupport (5.1.1) lib/active_support/tagged_logging.rb:26:in `tagged' 
activesupport (5.1.1) lib/active_support/tagged_logging.rb:69:in `tagged' 
railties (5.1.1) lib/rails/rack/logger.rb:24:in `call' 
sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call' 
actionpack (5.1.1) lib/action_dispatch/middleware/remote_ip.rb:79:in `call' 
request_store (1.3.2) lib/request_store/middleware.rb:9:in `call' 
actionpack (5.1.1) lib/action_dispatch/middleware/request_id.rb:25:in `call' 
rack (2.0.3) lib/rack/method_override.rb:22:in `call' 
rack (2.0.3) lib/rack/runtime.rb:22:in `call' 
activesupport (5.1.1) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call' 
actionpack (5.1.1) lib/action_dispatch/middleware/executor.rb:12:in `call' 
actionpack (5.1.1) lib/action_dispatch/middleware/static.rb:125:in `call' 
rack (2.0.3) lib/rack/sendfile.rb:111:in `call' 
railties (5.1.1) lib/rails/engine.rb:522:in `call' 
puma (3.9.1) lib/puma/configuration.rb:224:in `call' 
puma (3.9.1) lib/puma/server.rb:602:in `handle_request' 
puma (3.9.1) lib/puma/server.rb:435:in `process_client' 
puma (3.9.1) lib/puma/server.rb:299:in `block in run' 
puma (3.9.1) lib/puma/thread_pool.rb:120:in `block in spawn_thread' 
+1

können Sie versuchen, diesen Link https://collectiveidea.com/blog/archives/2016/07/22/solutions-to-potential-upgrade-problems-in-rails-5 – skam

Antwort

7

ich konfrontiert gerade genau das gleiche Problem. Ich sovled es durch Einstellung:

config/Umgebungen/development.rb

aus:

# Do not eager load code on boot. 
config.eager_load = true 

zu:

**# Do not eager load code on boot. 
config.eager_load = false 

hoffe, das hilft! Prost, Nic.

+7

Ich bevorzuge die Verwendung von eager_load auf Dev-Boot als eine Art statischer Code-Analysator. Wenn Sie irgendwo einen Syntaxfehler haben *, wissen Sie sofort Bescheid. Allerdings habe ich es trotzdem probiert und leider hatte es keine Wirkung. Ich habe auch versucht, eine neue Rails 5.1.1 App zu bauen und beide Wege funktionierten wie erwartet, mit und ohne Feder ... humm –

+1

funktionierte für mich, aber es muss noch ein anderer Weg sein, es zu tun (oder warum würde es diese Option sowieso geben ab 5.1 on) –

+0

Es scheint sehr unerwünscht zu sein, eine Schlüsseleigenschaft von Rails zu deaktivieren, nur um dieses Problem zu umgehen, geschweige denn eine Funktion, die für einige notwendig sein kann. – Todd

4

Scheint es Frühling hängt oder so. Führen Sie einfach spring stop und es sollte weggehen. Alternativ können Sie die Schienenkonsole ohne Feder wie folgt starten:

DISABLE_SPRING=true rails c.

+1

Ich laufe nicht Spring, wir hatten Probleme damit, als es eingeführt wurde und kümmerte sich seitdem nicht darum. Für jetzt habe ich gerade mein 5.1 Upgrade verschoben. 5.0 funktioniert super. –

+0

Hilft mir nicht – Evmorov

0

Sie erhalten diesen Fehler nicht in der Produktionsumgebung und in einer Testumgebung (wenn Sie Spring nicht verwenden). Da dieser Bug "ArgumentError: unknown firstpos: NilClass" in "neu laden" kam, als er versuchte, einige Ihrer Klassen neu zu laden.

In Produktions- und Testumgebung alle Dinge im Cache sind, so dass alle Ihre Dinge im Cache gespeichert werden und Fehler werden

nicht Leider (jetzt) ​​geschehen für die Entwicklungsumgebung, fand ich auch nur diese Lösung

config.eager_load = false 
Verwandte Themen