2009-04-03 14 views
28

To powinno być proste, ale nie mogę znaleźć łatwej odpowiedzi.Przekazywanie wartości parametrów do przekierowania do querystringu w szynach

Jak przekazać wartości parametrów z bieżącego żądania do przekierowania_do połączenia? Mam pewne wartości formularza Chciałbym przekazać w ciągu zapytania GET przekierować

chciałbym zrobić coś takiego:

redirect_to @thing, :foo => params[:foo] 

i wysyłane do:

http://things/4?[foo][key1]=val1&[foo][key2]=val2 

Dzięki!

Również - w jaki sposób można to obsłużyć w przypadku przekierowania do: z powrotem?

redirect_to :back, :foo => params[:foo] 

Odpowiedz

38

Formularz "Record" z redirect_to używa drugiego argumentu tylko dla statusu odpowiedzi. Będziesz musiał użyć innej formy przekierowania, np. Formularza "Ciąg". np .:

redirect_to thing_path(@thing, :foo => params[:foo]) 

która będzie pracować dla zagnieżdżonych params[:foo] params jak wspomniałeś. Albo, jak Drew skomentował poniżej, można użyć polymorphic_url (lub _path):

redirect_to polymorphic_path(@thing, :foo => params[:foo]) 
4

Aby dodać do Jordana odpowiedź:

Jeśli nie wiesz, jaki typ obiektu @thing może być, można użyć uniwersalna metoda polymorphic_url. Jest to metoda wewnętrznie wywoływana, gdy mimo wszystko przekazujemy obiekt do redirect_to.

Powiązane problemy