2016-04-11 4 views
1

In 2.3 gibt esUnterschiede betwen 2.3 und 4.2.6 Routing

map.connect ':controller/:action/:id' 

ich zum Beispiel "/ resource/bearbeiten" zuzugreifen versucht, es hat kein Problem Controller Ressource und Aktion bearbeiten zu finden.

In 4.2, verwende ich

get ':controller/:action/:id' 

Die "/ resource/bearbeiten" funktioniert nicht. Ich schätze, es liegt daran, dass es keine gibt: ID?

Wenn ich

get ':controller/:action(/:id)' 

ändern, die macht: id optional, dann funktioniert alles.

Also meine Fragen sind:

1) ist meine Vermutung richtig? Was ist: für 2.3 müssen Sie nicht optional definieren, und es wird optional sein, aber für 4.2 müssen Sie optional definieren, um es optional zu machen.

2) Für 2.3, einmal

map.connect ':controller/:action/:id' 

definiert ist, ist es für alle definierten GET/POST/PATCH/etc DELETE? Für 4.2 muss ich folgendes definieren?

get ':controller/:action(/:id)' 
post ':controller/:action(/:id)' 

usw. eins nach dem anderen?

  1. Gibt es weitere große Unterschiede, die Sie sich vorstellen können?

Danke.

+0

Sie können viele Informationen hier finden: http://guides.rubyonrails.org/routing.html – IngoAlbers

+0

Aber sie sagen Ihnen einfach nicht den Unterschied, oder weisen Sie darauf hin, welche Codes gebrochen sind. Ich mache Migration von 2.3 auf 4. Ich muss genau wissen, was sich geändert hat. Nun, was ich tun kann, ist nur zu sehen, was beim Testen kaputt ist, und versuche zu raten, ob es daran liegt, dass sich die Regel geändert hat. – user534498

Antwort

1

(1) Ja, das ist richtig.

(2) Verwenden einfalls Routing als Alternative zu definieren, GET, POST, PATCH, auf der gleichen Strecke DELETE:

resources :resource_name 

dies new (GET) definieren, create (POST), edit (GET), update (PUT/PATCH) und destroy (DELETE) Aktionen für das Modell namens resource_name. Die Rails-Dokumente haben hier eine viel bessere Erklärung: .

(3) Es gibt wahrscheinlich andere Unterschiede, obwohl es eine Weile her ist, seit ich Rails 2.x verwendet habe. Ich würde empfehlen, sich an die Routing-Schemata für Rails 3+ zu gewöhnen, da sie etwas strenger sind, wenn HTTP-Verben für Ihre Routen definiert werden.

+0

thx, das ist genau das, was ich wissen will, die Bestätigung. Es ist ein bisschen schmerzhaft zu erraten, ob es etwas geändert hat oder weil ich etwas falsch gemacht habe. – user534498