Search contoller o search action?

Salve,
una domanda di tipo stilistico…

Avendo una risorsa Pepole, e dovendo eseguire una ricerca avanzata, è
meglio usare un’azione search nello stesso controller o usare un
controller singleton Search?
Io pendo per la seconda, ma mi interessava sapere cosa ne pensa la
cooommunity.

Ciao a tutti,

Se consideri controller REST, una ricerca gia’ per la sua natura (a meno
di non essere particolarmente semplice) non si immerge agevolmente nello
schema REST della risorsa “da cercare”, per cui la ricerca dovrebbe
essere considerata essa stessa una nuova risorsa (talora anche piu’ di
una sola risorsa).

Ma anche al di fuori della visione REST, se la ricerca include
differenti interazioni con il server io preferisco lasciarla ad un
controller dedicato.

2008/11/5 Claudio Petasecca D. [email protected]

Se consideri controller REST, una ricerca gia’ per la sua natura (a meno
di non essere particolarmente semplice) non si immerge agevolmente nello
schema REST della risorsa “da cercare”, per cui la ricerca dovrebbe
essere considerata essa stessa una nuova risorsa (talora anche piu’ di
una sola risorsa).

mi pare invece che la ricerca si adatti bene alla “visione” REST :slight_smile:

Nel caso di ricerca degli elementi di un singolo modello (e.g. Person) i
risultati della ricerca non sono altro che un sottoinsieme delle
risorse,
ovvero una lista filtrata con dei parametri. In un controller RESTful la
ricerca sarebbe semplicemente la action index a cui possono essere
passati
dei parametri (e.g. GET /people?name=Tizio ritorna una lista di risorse
del
modello Person che hanno come nome ‘Tizio’).

Il caso di ricerche su vari modelli i cui risultati devono essere visti
assieme, puo’ costituire un’eccezione in cui e’ utile separare la
funzione
di ricerca in un diverso controller, ma sono casi limitati e molto
spesso se
si vuol rimanere nel “modello REST” e ci si trova a dover fare delle
operazioni su risorse eterogenee (e.g. ricerca su persone e aziende) e’
utile domandarsi se non “manca” una risorsa. La “risorsa mancante”
potrebbe
essere ad esempio un generico “risultato della ricerca” (N.B. risorsa !=
modello).

ciao,
Luca

Io uso una cosa del tipo (classico esempio di Post come risorsa):

/posts?q=foo+bar&page=2
/posts.xml?q=foo+bar&page=2

2008/11/5 Fabrizio R. [email protected]:

Infatti usare un’azione ‘search’ non avrebbe senso. Si usa index e si
filtra con dei parametri.
Non è una soluzione meno elegante dell’altra, nè meno solida dal punto
di vista del paradigma REST.
E’ quello che avviene quando si usa will_paginate, tutto sommato.
Tuttavia un search controller generico lascia più spazio a sviluppi
futuri.

Il giorno 05/nov/08, alle ore 11:58, Luca M. ha scritto: