Zagniezdzone zasoby - najlepsze praktyki

Witam

W jaki jest poprawne (rails way) podejście do zagniezdzonych zasobow w przypadku kiedy jeden zasob jest podzasobem dwu lub wiecej zasobow. Przykład:

[code]resources: a do
resources: z
end

resources: b do
resources: z
end[/code]
Czy w takim przypadku w kontolerze z powinienem rozpatrywac dwa przypadki ? czyli ze jestem w kontrolerze z w konteksie zasobu a lub b i w zaleznosci od tego zasilic widok odpowiednimi danymi czy raczej powinienem to rozlozyc na dwa kontrolery?

Nowe zalecane podejście to tzw. “concerns”. Poczytasz o tym tutaj (punkt 2.8):

http://guides.rubyonrails.org/routing.html

[quote=Arnvald]Nowe zalecane podejście to tzw. “concerns”. Poczytasz o tym tutaj (punkt 2.8):

http://guides.rubyonrails.org/routing.html[/quote]
Dzieki za odpowiedz.

Chodzilo mi o to czy jak mam zagniezdzony zasob z w zasobie a i b - a nastepnie odwoluje sie do niego poprzez a_z_path(a) i b_z_path(b) to czy w kontrolerze z musze rozpoznawac w jakim kontekscie jestem czy to a czy b - czy moge zdefiniowac kontroler dla zagniezdzonego zasobu z poziomu routes ?

Możesz zdefiniować sobie kontroler w routes (http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use), aczkolwiek chyba lepszym rozwiązaniem byłoby stworzenie dwóch osobnych kontrolerów i jednego głównego dziedziczenie po sobie.

Czyli mniej więcej struktura:

controllers/z_controller.rb controllers/a/z_controller.rb controllers/b/z_controller.rb
Gdzie a i b to te wymienione przez Ciebie klasy (oczywiście w formie pluralized)

[code]module Post
class CommentsController < ::CommentsController
end
end

module Picture
class CommentsController < ::CommentsController
end
end

class CommentsController
end[/code]
coś w tym stylu. Oczywiście musisz sobie przemyśleć, jak rozwiązać problem przekazywania parametrów (bo będą inne, typu post_id, picture_id), ale to pozostawiam już Tobie. :wink:

Dzieki. Ma to sens!