2016-02-02 16 views
8

Ich aktualisiere eine App von Rails 4.2 auf Rails 5 beta1.1 in Entwicklung. App funktionierte gut vor dem Upgrade. Ich habe die grundlegenden Upgrade-Schritte (Aktualisieren von Ruby, Aktualisieren von Rails und zugehörige Schritte unter: http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html) durchgeführt. Gemfile wurde auch auf die neuesten Edelsteine ​​aktualisiert.Rails 5 Upgrade: Keine solche Middleware zum Einfügen nach: ActionDispatch :: ParamsParser (RuntimeError)

Wenn ich $ laufe Schienen Middleware oder Konsole $ Schienen oder Schienen $ server ich die folgende Fehlermeldung erhalten:

No such middleware to insert after: ActionDispatch::ParamsParser 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/actionpack/lib/action_dispatch/middleware/stack.rb:108:in `assert_index' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/actionpack/lib/action_dispatch/middleware/stack.rb:80:in `insert_after' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/configuration.rb:69:in `block in merge_into' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/configuration.rb:68:in `each' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/configuration.rb:68:in `merge_into' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/engine.rb:507:in `block in app' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/engine.rb:504:in `synchronize' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/engine.rb:504:in `app' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/application/finisher.rb:34:in `block in <module:Finisher>' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/initializable.rb:30:in `instance_exec' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/initializable.rb:30:in `run' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/initializable.rb:55:in `block in run_initializers' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/initializable.rb:54:in `run_initializers' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/application.rb:350:in `initialize!' 
.../config/environment.rb:5:in `<top (required)>' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/activesupport/lib/active_support/dependencies.rb:302:in `require' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/activesupport/lib/active_support/dependencies.rb:302:in `block in require' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/activesupport/lib/active_support/dependencies.rb:268:in `load_dependency' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/activesupport/lib/active_support/dependencies.rb:302:in `require' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/application.rb:326:in `require_environment!' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/application.rb:446:in `block in run_tasks_blocks' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/commands/rake_proxy.rb:13:in `block in run_rake_task' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/commands/rake_proxy.rb:10:in `run_rake_task' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/commands/commands_tasks.rb:51:in `run_command!' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/command.rb:20:in `run' 
.../.rvm/gems/ruby-2.3.0/bundler/gems/rails-dbf67b3a6f54/railties/lib/rails/commands.rb:19:in `<top (required)>' 
bin/rails:4:in `require' 
bin/rails:4:in `<main>' 

Dies bezieht dich auf Tatsache, dass ActionDispatch :: ParamsParser von Rails 5 Beta Middleware entfernt wurde (https://github.com/rails/rails/commit/38d2bf5fd1f3e014f2397898d371c339baa627b1). Aber irgendwie scheint meine App immer noch danach zu suchen.

Ich habe versucht, verschiedene Dinge mit ActionDispatch :: ParamsParser in config/application.rb, wie das Löschen, und, wenn das nicht funktioniert, habe ich auch versucht, es hinzuzufügen. Derselbe Fehler. Irgendeine Möglichkeit, um diesen Fehler zu umgehen?

Antwort

9

Ich glaube, dass dieser Fehler von einem Juwel verursacht wurde, das noch nicht für Rails 5 aktualisiert wurde. Ich hatte den Edelstein remotipart (https://github.com/JangoSteve/remotipart) verwendet. Es war sehr hilfreich. Wenn ich es aus der Edelsteindatei entferne, verschwindet der in der Frage notierte Fehler.

+0

Hallo, was hast du anstelle von remote dann benutzt? –

+2

Ich landete die Daten von den Formulareingaben mit Javascript und führte einen AJAX-Postanruf durch, um das Formular zu senden. Mag nicht der "Weg der Schiene" sein, aber ich finde es eine flexible Lösung für die Einreichung von Remote-Formularen. – TH1J2

+1

Genau mit dem gleichen Fehler kam ich mit einer Teillösung, da diese PR (https://github.com/JangoSteve/remotipart/pull/154) noch nicht integriert war: füge diese zu deinem gemfile 'gem 'remotipart' hinzu, '~> 1.2', GitHub: 'Pedantix/Remotipart', Ref: '7f7989db572976816c03508c335bbc1d8230af78'' – sequielo