2016-08-05 19 views
0

Um in routes.rb mit params umzuleiten verwenden wir folgende Syntax.Redirect in routes.rb mit Platzhalterwerten anstelle von Params?

get '/stories/:name', to: redirect('/articles/%{name}', status: 301) 

Wenn ich die Wildcard-URL übergeben möchte Wie kann ich es tun. Ich habe Folgendes versucht, es funktioniert nicht.

get '/stories/*search', to: redirect('/articles/%{search}', status: 302) 

get '/stories/*search', to: redirect("/articles/#{search}", status: 302) 

Ich da irgendwelche hack um dafür.

+0

Was wird Ihre 'URL' sein und wo wird' redirect_to'? – hgsongra

Antwort

1

Ich glaube, eine dieser 3 Lösungen sollte für Sie arbeiten, aber es ist ein bisschen schwer zu sagen, genau was Sie suchen.

Dies wird grundsätzlich Geschichten mit Artikeln wechseln und behalten Sie den Platzhalterwert der URL. dh/stories/hallo-Welt wird/articles/hallo-Welt

get '/stories/*name', to: redirect('/articles/%{name}', status: 302)

oder wenn Sie wollen die ganze '/stories/*name' original url

get '/stories/*name', to: redirect('/articles/stories/%{name}', status: 302) 

passieren oder wenn Sie wollen, die passieren Platzhalter als Abfragezeichenfolge Sie könnten es so machen

get '/stories/*name', to: redirect('/articles/?name=%{name}', status: 302) 

Sie finden Beispiele in der Dokumentation. Ich habe 3.11 und 3.12 kombiniert.