# Nome controller sempre plurale?

**URL:** <https://www.ruby-forum.com/t/nome-controller-sempre-plurale/156712>\
**Category:** IT\
**Created:** [January 1, 2009, 6:22pm UTC](https://www.ruby-forum.com/t/nome-controller-sempre-plurale/156712 "2009-01-01T18:22:58Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [January 1, 2009, 6:22pm UTC](https://www.ruby-forum.com/t/nome-controller-sempre-plurale/156712/1 "2009-01-01T18:22:58Z")

</div>

Ciao! Come da titolo mi chiedo se per controller non direttamente legati  
ad activerecord Ã¨ sempre meglio utilizzare la forma plurale oppure se in  
alcuni casi va bene anche il singolare.

Per es. devo utilizzare per forza sessions\_controller, oppure in questo  
caso va anche bene utilizzare session\_controller? A me suona meglio  
session/login piuttosto che sessions/login …

Grazie

---

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [January 1, 2009, 8:13pm UTC](https://www.ruby-forum.com/t/nome-controller-sempre-plurale/156712/2 "2009-01-01T20:13:18Z")

</div>

Marco C. wrote:

> Ciao! Come da titolo mi chiedo se per controller non direttamente legati  
> ad activerecord Ã¨ sempre meglio utilizzare la forma plurale oppure se in  
> alcuni casi va bene anche il singolare.
> 
> Per es. devo utilizzare per forza sessions\_controller, oppure in questo  
> caso va anche bene utilizzare session\_controller? A me suona meglio  
> session/login piuttosto che sessions/login …
> 
> Grazie

Puoi creare le url che preferisci andando ad editare il file  
config/routes.rb

Ad esempio se pensi che /login suoni anche meglio di session/login puoi  
inserire linee come

map.connect ‘login’, :controller =\> ‘sessions’, :action =\> ‘login’  
map.connect ‘logout’, :controller =\> ‘sessions’, :action =\> ‘logout’

prima di quella che definisce il routing di default.  
Oppure puoi definire delle named routes:

map.login ‘/login’, :controller =\> ‘sessions’, :action =\> ‘login’  
map.logout ‘/logout’, :controller =\> ‘sessions’, :action =\> ‘logout’

che ti creano helper tipo login\_url e logout\_url e se non erro altri  
ancora.

Ti consiglio perÃ² di approfondire l’argomento leggendo la documentazione  
di Rails sul routing, anche perchÃ© per la sintassi mi sono basato sui  
file di alcune mie applicazioni ma non ho testato quel che ti ho scritto  
.-)

Paolo

---

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [January 1, 2009, 10:10pm UTC](https://www.ruby-forum.com/t/nome-controller-sempre-plurale/156712/3 "2009-01-01T22:10:22Z")

</div>

Ciao 😃

Sui nomi dei controller c’è un discorso di convenzione piuttosto che di  
regole, diciamo  
che esistono due grosse categorie di controllers

- Quelli che mappano risorse, sono i controller ai quali di solito si  
associa un map.resources o  
map.resource e che rispondono a chiamate effettuate con il paradigma  
RESTful, a questi controller,  
che nella norma incidono su di un solo model si tende a dare la  
seguente  
nomenclatura:
  - ‘nome\_del\_model\_singolare’\_controller.rb se nel file routes.rb  
c’è  
un map.resource (cioè se  
il controller incide su una singola istanza del modello);

  - ‘nome\_del\_model\_plurale’\_controller.rb se nel file routes c’è un  
map.resources (cioè se il  
controller incide su di una collezione di istanze di un modello);

  - I controller generici, sono controller che non sono troppo  
aderenti  
al concetto di risorsa,  
(ad esempio un controller che gestisce tutte le form di contatto di  
un  
sito), in questo caso  
il nome che decidi di dare è assolutamente arbitrario 🙂 (a questi  
controller corrisponde il map.connect nel file routes)

Se vuoi approfondire il concetto di Risorsa e di paradigma REST io ho  
trovato questo tutorial  
abbastanza interessante 🙂

> **[RESTful Rails. Part I — SitePoint](https://www.sitepoint.com/restful-rails-part-i/)**
>
> Read RESTful Rails. Part I and learn with SitePoint. Our web development and design tutorials, courses, and books will teach you HTML, CSS, JavaScript, PHP, Python, and more.

Sandro

---

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [January 1, 2009, 11:17pm UTC](https://www.ruby-forum.com/t/nome-controller-sempre-plurale/156712/4 "2009-01-01T23:17:43Z")

</div>

On Thu, Jan 1, 2009 at 9:47 PM, Fabrizio R.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)wrote:

> Per farla RESTful (è necessario pensare a risorse): “sessions/new”,  
> che per comodità puoi aliasare in “/login” o come altro vuoi.
> 
> I nomi dei file dei controller vanno sempre al plurale.  
> Se la risorsa è singleton, allora la url viene generata al singolare  
> automaticamente (impostando map.resource :session, ad esempio [_notare  
> l’uso del singolare_]).

Vero, mi ero sbagliatissimo 😃 grazie per la correzione 😃

---

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [January 1, 2009, 10:48pm UTC](https://www.ruby-forum.com/t/nome-controller-sempre-plurale/156712/5 "2009-01-01T22:48:25Z")

</div>

Per farla RESTful (è necessario pensare a risorse): “sessions/new”,  
che per comodità puoi aliasare in “/login” o come altro vuoi.

I nomi dei file dei controller vanno sempre al plurale.  
Se la risorsa è singleton, allora la url viene generata al singolare  
automaticamente (impostando map.resource :session, ad esempio [_notare  
l’uso del singolare_]).

Saluti,

Il giorno 01/gen/09, alle ore 18:22, Marco C. ha scritto:

---

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [January 2, 2009, 8:14pm UTC](https://www.ruby-forum.com/t/nome-controller-sempre-plurale/156712/6 "2009-01-02T20:14:29Z")

</div>

Fabrizio R. wrote:

> Per farla RESTful (ï¿½ necessario pensare a risorse): “sessions/new”,  
> che per comoditï¿½ puoi aliasare in “/login” o come altro vuoi.
> 
> I nomi dei file dei controller vanno sempre al plurale.  
> Se la risorsa ï¿½ singleton, allora la url viene generata al singolare  
> automaticamente (impostando map.resource :session, ad esempio [_notare  
> l’uso del singolare_]).

Grazie a tutti per i chiarimenti!
