Zastanawiam się w jaki sposób organizujecie kod źródłowy złożonych aplikacji, gdzie jest wiele kontrolerów. Oczywiście w grę wchodzi przypadek gdzie aplikacja jest mniej lub bardziej REStowa, więc logiczne wydaje się zorganizowanie kodu źródłowego w moduły (i foldery) odpowiadające poszczególnym zasobom REST.
Ja to robię tak, że jak mam kontrolery do zarządzania użytkownikiem, jego komentarzami i ocenami komentarzy to robię to tak:
app/
controllers/
users_controller.rb (UsersController)
user/
comment/
ratings_controller.rb (User::Comment::RatingsController)
comments_controller,rb (User::CommentsController)
Dodatkowo, jeśli mam wiele kontrolerów zagnieżdżonych w danym zasobie to mogę sobie wyciągnąć klasę bazową, na przykład:
app/
controllers/
user/
base_controller.rb (User::BaseController)
comments_controller.rb (User::CommentsController < User::BaseController)
reviews_controller.rb (User::ReviewsController < User::BaseController)
Takie podejście wygląda mi dość rozsądnie, może jest troszkę więcej pisaniny przy nazwach klas ale tego się nie używa często. A jak Wy to robicie? Jednym z usprawnień do powyższego schematu może być zastąpienie modułem klas bazowych, ale czy ogólna koncepcja jest również przez Was praktykowana? Jakie są możliwe inne podejścia?