Ich habe gerade ein Upgrade auf Rails 4 durchgeführt und ein unerwartetes Verhalten beim Routing festgestellt.
Wir haben einen Controller namens EmailPreviewController. Das Routing dafür war:
%Vor%Nach dem Upgrade auf Rails 4 wird jedoch beim Laden der Umgebung folgender Fehler ausgegeben:
%Vor%Ich habe mir die Seite angesehen, aber es gibt keine t irgendein Anzeichen, dass es falsch ist, einen Controller mit einem CamelCase-Namen zu verwenden.
Wenn ich den Controller in Kleinbuchstaben ändere, gibt es kein Problem:
%Vor%Ist das erwartetes Verhalten? Ist es jetzt nicht möglich, Camelcase-Controller-Namen zu verwenden oder gibt es hier etwas anderes?
Die Antwort darauf war etwas kontraintuitiv. Ich nehme an, es ist wie entworfen, aber es ist nicht das, was ich erwartet hätte.
In Rails 3 könnten Sie den Namen des Controller-Objekts übergeben und Rails würde seinen Weg dorthin finden:
%Vor% würde seinen Weg zur EmailPreviewController
finden, die in email_preview.rb
enthalten ist.
In Rails 4 scheint es, dass Sie den Namen des Controller-Objekts in einer Schlange eingeben müssen:
%Vor% Dies wird zu% EmailPreviewController
in email_preview.rb
gelangen.
Siehe auch Ссылка (obwohl dies in diesem speziellen Fall nicht viel erklärt) )
Tags und Links routing ruby-on-rails-4