zapamiętywanie raz wybranej kategorii w katalogu (liście)

Mam katalog produktów (akcja index), w którym mogę wybrać sobie kategorię (przekazując np. category_id, jako parametr).

Gdy mam wybraną jakąś kategorię i klikam na link “utwórz nowy produkt”, przechodzę do akcji new dla produktu i po zapisaniu produktu (akcja create) wracam do indexu. Chcę, żeby nadal była wybrana kategoria, którą miałem przed utworzeniem nowego produktu.

Mogę oczywiście przekazać category_id do new, a potem do create, ale po pierwsze obie akcje nie potrzebują tego parametru, a po drugie, chcę żeby podobnie działało edit i update.

Myślałem też, żeby w sesji trzymać wartość category_id zapisywaną przy wyborze kategorii i flagę “category_selected?”, którą bym ustawiał w update i create, i jeśli ta flaga jest ustawiona to pobierał w indexie category_id?

Jest jakieś eleganckie rozwiązanie? Bo odnoszę wrażenie, że za dużo kombinuję. :slight_smile:

Zakladam, że masz relacje: kategoria -> wiele produktów, produkt -> jednak kategoria (wnioskuje to po tym category_id). Żeby za dużo nie tłumaczyć:
Obejrzyj:
http://www.vimeo.com/425800

Post w twoim przypadku to category, Comment to u Ciebie product.
zwróć uwagę na:

redirect_to([@post, @comment])

pozdrawiam

Dzięki za wyczerpującą odpowiedź, sam przykład kodu wystarczył.

Relację mam taką jak opisałeś, a życie sobie po prostu skomplikowałem tworząc jakiś pokraczny (nie RESTowy) routing.