Y a-t-il un inconvénient à utiliser des noms singuliers pour les contrôleurs et les assistants? Rien ne semble reposer sur cela. Il semble même que les assistants n'aient pas à faire le même choix entre le singulier et le pluriel que leurs contrôleurs correspondants, du moins selon mon expérimentation limitée. Est-ce vrai?
ruby-on-rails
naming-conventions
allyourcode
la source
la source
Réponses:
Certainement au pluriel .
Avec un routage reposant et un contrôleur unique
Manette:
Itinéraires:
Utilisation d'un contrôleur pluriel
Manette:
Itinéraires:
rails generate controller --help
a plusieurs exemples:la source
L'utilisation de noms pluriels pour les contrôleurs n'est qu'une convention.
Les noms au pluriel semblent généralement plus naturels (en particulier pour les contrôleurs qui sont directement liés à un modèle spécifique: Utilisateur -> Utilisateurs, etc.), mais vous pouvez utiliser ce que vous voulez.
En ce qui concerne les helpers, tous les helpers sont disponibles pour tous les contrôleurs par défaut, donc techniquement, la façon dont vous nommez vos helpers n'a pas du tout d'importance. C'est juste une autre convention de conserver les fonctions d'assistance d'un contrôleur dans un assistant avec le même nom que le contrôleur.
la source
Un modèle est singulier car il fait référence à un seul objet comme User. Un contrôleur est au pluriel car ce sont les contrôles (méthodes) pour la collection d'utilisateurs. La façon dont on nomme les routes dépend de ce développeur individuel. Je n'ai jamais vu un utilisateur se plaindre qu'une URL d'une requête Web soit au singulier ou au pluriel. Le résultat final est de maintenir une convention commune pour les contributeurs actuels et futurs tout en servant des affichages de page de qualité ou les demandes d'API pour les utilisateurs finaux.
la source
Vous avez une explication très complète dans les guides Rails: http://edgeguides.rubyonrails.org/routing.html#resource-routing-the-rails-default
la source
Selon la convention Rails, un contrôleur gère un modèle, qu'une ou plusieurs instances de ce modèle puissent exister pendant l'exécution. Cependant, vous pouvez avoir une application Rails dans laquelle (certains des) contrôleurs (et les vues associées) ne sont associés à aucun modèle particulier, mais gèrent plutôt un ensemble plus complexe de fonctionnalités. Dans ce cas, la pluralisation automatique n'a aucun sens.
L'application Rails sur laquelle je travaille actuellement s'inscrit dans cette catégorie, et c'est simplement une irritation pour moi que Rails s'attende à ce que les identificateurs que je définis comme un singulier à un endroit soient ensuite utilisés au pluriel à d'autres endroits. Par exemple, je pourrais vouloir définir quelque chose comme ceci dans
config/routes.rb
:puis je veux qu'un contrôleur
DashboardController
affiche des informations récapitulatives sur certains aspects de l'application, collectant des informations à partir de plus d'une table de base de données. Donc ici,Dashboard
ne fait référence à aucun modèle de l'application, et ce serait juste bizarre d'avoir le nom du contrôleurDashboardsController
.J'ai trouvé une bonne solution à l'irritation de la pluralisation automatique dans cette réponse . En bref, éditez le fichier
config/initializers/inflections.rb
et ajoutez les mots que vous ne voulez pas être automatiquement mis au pluriel à cette définition:la source
La convention de dénomination des contrôleurs dans Rails favorise la pluralisation du dernier mot du nom du contrôleur, bien que cela ne soit pas strictement requis (par exemple
ApplicationController
).Par exemple,
ClientsController
est préférable àClientController
,SiteAdminsController
est préférable àSiteAdminControlle
r ouSitesAdminsController
, et ainsi de suite.Suivre cette convention vous permettra d'utiliser les générateurs de routes par défaut (ex: ressources, etc.) sans avoir besoin de qualifier chacun
:path
ou:controller
, et gardera votre application cohérente dans l'utilisation des aides URL et le chemin.Réf: Controller Naming Convention-Rails Doc
la source
Je me sens mieux quand j'utilise le singulier pour le nom du contrôleur
la source
Si le contrôleur est une ressource, il doit être au pluriel ...
Par exemple
Manette
Modèle
Mais vous pouvez utiliser des noms de contrôleurs singuliers lorsque vous n'avez pas de modèles correspondants comme
la source
Utiliser des pluriels sonne mieux, et si vous avez un contrôleur qui gère une ressource singulière, c'est-à-dire un utilisateur, vous pouvez toujours nommer l'url / l'utilisateur.
Avec les helpers, il n'est souvent pas nécessaire d'avoir un assistant pour chaque contrôleur, et souvent il y aura des méthodes d'aide, vous pouvez utiliser plusieurs contrôleurs ascors et plutôt les jeter dans votre assistant d'application, vous pouvez les mettre dans des helpers personnalisés à la place, comme par exemple layout_helper ou tout autre. autre fichier bien nommé.
la source