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
:
resource :dashboard, :only => [:show]
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 controlador DashboardsController
.
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:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable %w( dashboard foo bar baz )
end