2011-10-01 21 views
9

W mojej aplikacji Rails kontrolerzy zaczynają się piętrzyć (> 30).Co to jest "sposób Rails", aby poradzić sobie z dużą liczbą kontrolerów?

Czy to jest Java, zacząłem tworzyć pod-pakiety dawno temu, ale jestem trochę niezdecydowany. Mam już obszar nazw User i Admin, ale nie jestem pewien, czy dobrze jest utworzyć lepszą strukturę przestrzeni nazw, zwłaszcza biorąc pod uwagę łatwość konserwacji.

Co to jest "sposób Rails" w tym przypadku?

  • Po prostu masz mniej lub bardziej płaską strukturę kontrolera?
  • A może lepiej jest hojnie łączyć kontrolery w przestrzenie nazw/moduły?

Z góry dziękuję.

+0

Po prostu ciekawa, co masz na myśli przez dużą liczbę? –

+0

@Beerlington: 36 i liczy :) (Zaktualizowane pytanie też) –

Odpowiedz

2

Nie wiem, czy istnieje idealny sposób, ale specyficzny dla projektu, który zajmowałem, zgrupowałem go pod strukturę folderów. Początkowo, ponownie specyficzne dla mojego projektu, mieliśmy do czynienia tylko z kilkoma kontrolerami o nazwie trener i menedżer. Ale z biegiem czasu ich rozmiar zaczął się wybrzuszać i musieliśmy stworzyć jeszcze kilka kontrolerów, które można by pogrupować w szeroką kategorię. Spowodowało to płaski wzrost.

Więcej czasu minęło i zaczęliśmy grupować je w folderach, przykład w folderze zwanym trenerem wszystkie powiązane funkcje dla trenera byłyby dostępne, a nazwy kontrolerów zaczęły wyglądać jak class Coach::SchedulesController < ApplicationController.

Ten sposób grupowania również pomógłby w napisaniu testów funkcjonalnych. Nie chcesz, aby twój test funkcjonalny zawierał również szaloną ilość linii.

Ale sedno jak zwykle sugeruje Rails to chudy kontroler i gruby model. Czasami może nie być tak łatwo podążać za tym i tak, to są sposoby na przezwyciężenie trudności.

2

W Railsach niepożądane są kontrolery nazw (a nawet, ugh, modele). Tak, czasami jest to konieczne lub po prostu najłatwiejsze, ale powiedziałbym, że nigdy nie jest to pożądane.

Dopóki twoje kontrolery są chude i reprezentują po 1 modelu, nie przeszkadzałoby mi nawet 100 kontrolerów w płaskim folderze. Dzieje się tak, gdy masz znacznie więcej kontrolerów niż modeli, których zacznę się martwić.

Oczywiście to wszystko jest IMHO.

Powiązane problemy