¿Existe alguna desventaja en el uso de nombres singulares para controladores y ayudantes? Nada parece depender de esto. Incluso parece que los ayudantes no tienen que hacer la misma elección sobre singular versus plural que sus controladores correspondientes, al menos de acuerdo con mi limitada experimentación. ¿Es eso cierto?
ruby-on-rails
naming-conventions
allyourcode
fuente
fuente
Respuestas:
Definitivamente plural .
Con enrutamiento tranquilo y un controlador singular
Controlador:
Rutas:
Usando un controlador plural
Controlador:
Rutas:
rails generate controller --help
tiene ejemplos en plural:fuente
El uso de nombres en plural para controladores es solo una convención.
Los nombres en plural suelen parecer más naturales (especialmente para los controladores que están vinculados directamente a un modelo específico: Usuario -> Usuarios, etc.), pero puede usar lo que quiera.
En cuanto a los ayudantes, todos los ayudantes están disponibles para todos los controladores de forma predeterminada, por lo que, técnicamente, no importa en absoluto cómo nombre a sus ayudantes. Es solo otra convención para mantener las funciones auxiliares de un controlador en un ayudante con el mismo nombre que el controlador.
fuente
Un modelo es singular porque hace referencia a un solo objeto como Usuario. Un controlador es plural porque son los controles (métodos) para la colección de Usuarios. El nombre de las rutas depende de ese desarrollador individual. Nunca he tenido un usuario quejándose de que la URL de una solicitud web sea singular o plural. El resultado final es mantener una convención común para los contribuyentes actuales y futuros mientras se ofrecen visualizaciones de páginas de calidad o solicitudes de API para los usuarios finales.
fuente
Tienes una explicación muy completa en las guías de Rails: http://edgeguides.rubyonrails.org/routing.html#resource-routing-the-rails-default
fuente
Es la convención de Rails que un controlador maneja un modelo, ya sea que una o más instancias de ese modelo puedan existir durante el tiempo de ejecución. Sin embargo, puede tener una aplicación Rails donde (algunos de) los controladores (y las vistas asociadas) no están asociados con ningún modelo en particular, sino que manejan un conjunto de funciones más complejo. En este caso, la pluralización automática no tiene ningún sentido.
La aplicación Rails en la que estoy trabajando actualmente encaja en esta categoría, y es simplemente una irritación para mí que Rails espere que los identificadores que defino como singular en un lugar se usen en su forma plural en otros lugares. Por ejemplo, podría querer definir algo como esto en
config/routes.rb
:y luego quiero que un controlador
DashboardController
muestre información resumida sobre ciertos aspectos de la aplicación, recopilando información de más de una tabla de base de datos. Entonces, aquí,Dashboard
no se refiere a ningún modelo de la aplicación, y sería extraño tener el nombre del controladorDashboardsController
.Encontré una buena solución a la irritación de la pluralización automática en esta respuesta . En resumen, edite el archivo
config/initializers/inflections.rb
y agregue las palabras que no desea que se pluralicen automáticamente a esta definición:fuente
La convención de nomenclatura de los controladores en Rails favorece la pluralización de la última palabra en el nombre del controlador, aunque no es estrictamente necesario (p. Ej.
ApplicationController
. .).Por ejemplo,
ClientsController
es preferible aClientController
,SiteAdminsController
es preferible aSiteAdminControlle
roSitesAdminsController
, y así sucesivamente.Seguir esta convención le permitirá utilizar los generadores de ruta predeterminados (por ejemplo, recursos, etc.) sin necesidad de calificar cada uno
:path
o:controller
, y mantendrá el uso de URL y ayudantes de ruta consistente en toda su aplicación.Ref: Controlador de nomenclatura Convención-Rails Doc
fuente
Me siento mejor cuando uso singular para el nombre del controlador
fuente
Si el controlador es un recurso, entonces debe ser plural ...
Por ejemplo
Controlador
Modelo
Pero puede usar nombres de controlador singulares cuando no tiene modelos correspondientes como
fuente
El uso de plurales simplemente suena mejor, y luego, si tiene un controlador que maneja un recurso singular, es decir, un usuario, aún puede nombrar la URL / usuario.
Con los ayudantes, a menudo no es necesario tener un ayudante para cada controlador, y a menudo habrá métodos de ayuda que puede usar ascorss múltiples controladores y, en su lugar, ensuciarlos a través de su ayudante de aplicación, podría ponerlos en ayudantes personalizados en su lugar, como por ejemplo, layout_helper o cualquier otro archivo bien nombrado.
fuente