Czy jest jakaś wada używania pojedynczych nazw kontrolerów i pomocników? Wydaje się, że nic na tym nie polega. Wydaje się nawet, że pomocnicy nie muszą dokonywać takiego samego wyboru między liczbą pojedynczą a liczbą mnogą, jak odpowiadający im kontrolerzy, przynajmniej zgodnie z moimi ograniczonymi eksperymentami. Czy to prawda?
ruby-on-rails
naming-conventions
allyourcode
źródło
źródło
Odpowiedzi:
Zdecydowanie liczba mnoga .
Z spokojnym routingiem i pojedynczym kontrolerem
Kontroler:
Trasy:
Używanie kontrolera w liczbie mnogiej
Kontroler:
Trasy:
rails generate controller --help
ma wiele przykładów:źródło
Używanie nazw liczby mnogiej dla kontrolerów to tylko konwencja.
Nazwy w liczbie mnogiej zwykle brzmią bardziej naturalnie (szczególnie w przypadku kontrolerów, które są bezpośrednio powiązane z określonym modelem: Użytkownik -> Użytkownicy itp.), Ale możesz użyć tego, co chcesz.
Jeśli chodzi o pomocników, wszyscy pomocnicy są domyślnie dostępni dla wszystkich kontrolerów, więc technicznie rzecz biorąc, sposób nazywania pomocników nie ma żadnego znaczenia. Inną konwencją jest utrzymywanie funkcji pomocniczych kontrolera w helperach o tej samej nazwie co kontroler.
źródło
Model jest pojedynczy, ponieważ odwołuje się do pojedynczego obiektu, takiego jak User. Kontroler jest w liczbie mnogiej, ponieważ jest to kontrolki (metody) dla kolekcji użytkowników. To, jak nazwać trasy, zależy od tego konkretnego programisty. Nigdy nie spotkałem użytkownika narzekającego, że adres URL żądania internetowego jest w liczbie pojedynczej lub mnogiej. Efektem końcowym jest zachowanie wspólnej konwencji dla obecnych i przyszłych współpracowników podczas obsługi jakości wyświetlania stron lub żądań API dla użytkowników końcowych.
źródło
Masz bardzo pełne wyjaśnienie w przewodnikach Rails: http://edgeguides.rubyonrails.org/routing.html#resource-routing-the-rails-default
źródło
Zgodnie z konwencją Railsów jeden kontroler obsługuje jeden model, niezależnie od tego, czy jedna lub więcej instancji tego modelu może istnieć w czasie wykonywania. Możesz jednak mieć aplikację Railsową, w której (niektóre) kontrolery (i powiązane z nimi widoki) nie są powiązane z żadnym konkretnym modelem, ale raczej obsługują bardziej złożony zestaw funkcji. W tym przypadku automatyczna liczba mnoga nie ma sensu.
Aplikacja Rails, nad którą obecnie pracuję, mieści się w tej kategorii i jest dla mnie po prostu irytacją, że Railsy oczekuje, że identyfikatory, które określam jako liczbę pojedynczą w jednym miejscu, są następnie używane w liczbie mnogiej w innych miejscach. Na przykład mógłbym chcieć zdefiniować coś takiego w
config/routes.rb
:a następnie chcę, aby kontroler
DashboardController
wyświetlał podsumowanie informacji o niektórych aspektach aplikacji, zbierając informacje z więcej niż jednej tabeli bazy danych. Więc tutajDashboard
nie odnosi się do żadnego modelu aplikacji i byłoby po prostu dziwne, gdyby nazwa kontrolera brzmiałaDashboardsController
.Znalazłem dobre rozwiązanie problemu irytacji automatycznej liczby mnogiej w tej odpowiedzi . Krótko mówiąc, edytuj plik
config/initializers/inflections.rb
i dodaj słowa, których nie chcesz automatycznie tworzyć liczby mnogiej do tej definicji:źródło
Konwencja nazewnictwa kontrolerów w Railsach faworyzuje liczbę mnogą ostatniego słowa w nazwie kontrolera, chociaż nie jest to ściśle wymagane (np
ApplicationController
.).Na przykład,
ClientsController
korzystne jestClientController
,SiteAdminsController
korzystne jest, abySiteAdminControlle
r iSitesAdminsController
, i tak dalej.W następstwie tej konwencji będzie można korzystać z domyślnych generatorów trasy (np zasobów, etc) bez konieczności zakwalifikowania każdej
:path
lub:controller
, i będzie wykorzystywany URL i ścieżka pomocników spójne w całej aplikacji.Ref: Konwencja nazewnictwa kontrolerów - Rails Doc
źródło
Czuję się lepiej, gdy używam liczby pojedynczej dla nazwy kontrolera
źródło
Jeśli kontroler jest zasobem, musi być w liczbie mnogiej ...
Na przykład
Kontroler
Model
Ale możesz użyć pojedynczych nazw kontrolerów, gdy nie masz odpowiednich modeli, takich jak
źródło
Używanie liczby mnogiej brzmi po prostu lepiej, a jeśli masz kontroler obsługujący pojedynczy zasób, np. Użytkownika, nadal możesz nazwać adres URL / użytkownika.
Z pomocnikami często nie ma potrzeby posiadania pomocnika dla każdego kontrolera i często będą metody pomocnicze, możesz użyć ascorsów wielu kontrolerów i raczej zaśmiecać je wszystkie za pomocą pomocnika aplikacji, możesz umieścić je w niestandardowych pomocnikach, takich jak np. Layout_helper lub inne inny dobrze nazwany plik.
źródło