wskazówki, gdzie umieścić klasy w aplikacjach Rails, które nigdzie nie pasują

Zastanawiam się, czy istnieją jakieś najlepsze praktyki dotyczące tego, gdzie umieścić niestandardowe pliki Ruby w aplikacjach Rails, które nie mieszczą się w żadnym domyślnym katalogu (controllers/models itp.).

Mówię o klasach, które są używane przez kontrolery / modele itp., Ale nie są podklasami żadnej z klas bazowych Railsów. Klasy, które zawierają funkcje wyodrębnione z modeli, aby uczynić je mniej tłuszczu. Niektóre z nich wyglądają jak modele, ale nie są modelami AR, niektóre wyglądają bardziej jak „usługi”, inne są czymś pośrednim lub czymś innym.

Kilka przypadkowych przykładów:

klasy „strategii”, które obsługują uwierzytelnianie za pomocą hasła, za pośrednictwem Facebooka itp.Obiekty „XParams”, które hermetyzują params lub obiekty „XCreator”, które obsługują przetwarzanie params w celu wykonania złożonej akcji, która skutkuje utworzeniem niektórych modeli AR na końcuklasy, które wysyłają żądania do zewnętrznych interfejsów API lub zawierają te żądania i odpowiedzifałszywe modele, które można zastąpić prawdziwym modelem AR (np. gość)Praca resqueklasy, które przechowują i odczytują informacje z Redisklasy, które wykonują określone działania, takie jak przetwarzanie danych, generowanie raportów itp. i są wywoływane z zadań Resque lub zadań rake

Mam ich teraz całkiem sporo, niektóre z nich zostały dodanelib który kończy się stosem losowych klas i modułów, niektóre wkradają sięapp/models. Chciałbym jakoś to zorganizować, ale nie wiem od czego zacząć.

Wchodzą tylko modele ARapp/models? Czy może też umieścić tam dowolne modele domen lub pomocników? Jak decydujesz, czy coś jest modelem?

Czy wszystko, co nie pasujeapp wejść dolib? A może powinienem dodać kilka nowych niestandardowych podkatalogów doapp? Jakie podkatalogi i jak podzielić klasy niestandardowe?

Jak sobie z tym radzisz w swoich projektach? Wiem, że każdy projekt jest nieco inny, ale muszą istnieć pewne podobieństwa.

questionAnswers(5)

yourAnswerToTheQuestion