Routing für Controller mit mehreren Wörtern in Rails 4

8

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?

    
Peter Nixey 26.10.2013, 13:31
quelle

1 Antwort

14

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önnen Sie Controller angeben, die den Objektnamen

verwenden

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 müssen Sie jedoch Controller-Namen in snake-case

übergeben

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

    
Peter Nixey 27.10.2013, 15:01
quelle

Tags und Links