Forum: Italian Ruby user group Nome controller sempre plurale?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
9e339df8ac2b3b833c81ad0e3c0f46c5?d=identicon&s=25 Marco Colli (collimarco)
on 2009-01-01 18:22
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
7de465f222e6a9c7fe658e370d0bfe05?d=identicon&s=25 Paolo Montrasio (pmontrasio)
on 2009-01-01 20:13
Marco Colli 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
0df4a6c75caf1bd9b01d2dcbfb085ee4?d=identicon&s=25 Sandro Paganotti (Guest)
on 2009-01-01 22:10
(Received via mailing list)
Ciao :D

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 :)
http://www.sitepoint.com/blogs/2008/02/04/restful-...

Sandro
42651926eec2d760f10c78bcb473e5e3?d=identicon&s=25 Fabrizio Regini (Guest)
on 2009-01-01 22:48
(Received via mailing list)
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 Colli ha scritto:
0df4a6c75caf1bd9b01d2dcbfb085ee4?d=identicon&s=25 Sandro Paganotti (Guest)
on 2009-01-01 23:17
(Received via mailing list)
On Thu, Jan 1, 2009 at 9:47 PM, Fabrizio Regini
<fabrizio.regini@exelab.eu>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 :D   grazie per la correzione :D
9e339df8ac2b3b833c81ad0e3c0f46c5?d=identicon&s=25 Marco Colli (collimarco)
on 2009-01-02 20:14
Fabrizio Regini 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!
This topic is locked and can not be replied to.