Rails 4 routes

Cześć,

Migruję dużą appkę z rails 3 na rails 4 i natrafiłem na problem z którym nie potrafię sobie poradzić. Nie wiem czy to dotyczy zmian w routeach pomiędzy r3 a r4 czy czegoś nie widzę w pliku routes jednak problem jest opisany w giście :

Dla tego samego kodu w routes otrzymuje różne scieżki na r3 i na r4. W czym jest problem ?

Defaultową akcją dla akcji UPDATE w Rails 4 jest PATCH, a nie PUT (jak było od Rails 2). Nie mogę wyśledzić co spowodowało zmianę w zachowaniu DELETE.

ref. http://blog.remarkablelabs.com/2012/12/http-patch-verb-rails-4-countdown-to-2013

Ponadto, w Twoim przypadku sensowniej prawdopodobnie było użyć singleton resource, skoro wszystkie akcje modyfikujące dane operaują na (pełnej?) kolekcji. W takiej sytuacji głównym obiektem kontrolera byłaby kolekcja subskrypcji (a nie pojedyncza subskrypcja, jak wynika z Twojego postu), a ten kod można by było zapisać:

resource :subscriptions, only: [:show, :edit, :update, :destroy]

Jedyna wymagana zmiana, to przemianowanie starej akcji index na show (zgodnie z konwencjami dla singleton resources).

Rozwiązanie było jeszcze prostsze niż myślałem. Trzeba pozamieniać stringi na symbole i działa. Dziwne.

Z tą zmianą PUT na PATCH wiedziałem ale w tym przypadku to nie miało zastosowania dlatego założyłem ten temat. W kazdym razie dzięki za odpowiedź :slight_smile: