Post/Redirect/Get w RoR

W jaki sposób najprościej zaimplementować ten wzorzec (http://en.wikipedia.org/wiki/Post/Redirect/Get) w Railsach? Znalazłem w sieci coś takiego: http://bjhess.com/blog/2008/07/22/post-redirect-get-in-rails/
ale, szczerze mówiąc, to nie rozumiem co tam się dzieje, a próby przełożenia tego kodu do mojej aplikacji nic nie wnoszą.
Będę wdzięczny za pomoc i krótkie wyjaśnienie.

Jeśli dobrze to rozumiem, to domyślnie generowane przez Railsy kontrolery się tego wzorca trzymają. W skrócie chodzi o to:
Zapytania HTTP dzielą się na 8 typów, zwanych metodami, z czego dwa podstawowe to GET i POST. Ten pierwszy służy typowo do pobierania czegoś z serwera, drugi natomiast do wysłania (np. zawartości formularza). Oczywiście po wysłaniu czegoś też chcielibyśmy użytkownikowi coś pokazać, choćby komunikat potwierdzający pomyslne wysłanie danych. Wzorzec Post/Redirect/Get zaleca, aby nie wyświetlać niczego bezpośrednio podczas odpowiadania na zapytanie typu POST, tylko po wysłaniu danych przekierować do innego zapytania, tym razem typu GET. Pozwala to uniknąć niespodzianek, które mogą się przydarzyć kiedy próbujemy odświeżyć taką stronę (jeśli odświeżymy stronę, która przed wyświetleniem modyfikowała bazę danych, może się okazać, że komentarz dodał się dwa razy, albo co gorsza sklep przyjął zamówienie na dwa produkty. Przypadek z komentarzami jest z resztą w internecie dość powszechny - co pokazuje, dlaczego warto się do tego wzorca stosować)

Jeśli przejrzysz wygenerowane automatycznie przez Railsy kontrolery, zauważysz, że każda metoda odpowiadająca zapytaniu POST (np. create, update) kończy się wywołaniem funkcji redirect_to - zgodnie z wzorcem PRG.

Ok, faktycznie masz rację.
Zadałem to pytanie ponieważ na podstronie wyszukiwania wysyłam POSTem kryteria tegoż wyszukiwania. Po każdym odświeżeniu strony z wynikami przeglądarka oczywiście pyta czy ponownie przesłać zapytanie, poza tym nie da się takiej strony dodać do zakładem, tak żeby zakładka te kryteria “pamiętała”.
Przerobiłem kontroler tak, żeby po otrzymaniu kryteriów przekierowywał do innej akcji, gdzie pobierane są wyniki z bazy i wyświetlane. Niestety - tym razem wszystko jest ok, ale wszystkie kryteria wyszukiwania przesyłane są w URLu, przez co staje się on niezwykle brzydki i nieczytelny.
Nie wiem w jaki sposób zwykło się rozwiązywać takie sprawy aby nie działało to na zasadzie coś-za-coś. Może trzymać kryteria wyszukiwania w ciasteczkach na czas przekierowywania? Istnieją jakieś inne rozwiązania?

Niestety jako zakładkę możesz zapamiętać tylko adres url - przesyłanych POSTEM dodatkowych danych już nie. Więc rzeczywiście jest to coś za coś - można schować te kryteria, ale wtedy nie da się ich bookmarkować. Ale parametry w URLu przecież nie są takie straszne - nawet Google tak to robi :wink: