Quale controller dovrei inserire per un'azione di ricerca che tocca molti modelli diversi?

2

Al momento ho i seguenti modelli e sto progettando la funzionalità di ricerca che cerca all'interno di questi 3 modelli: sedi utenti User_friends

Devo creare un controller di ricerca o devo inserire l'azione in uno dei controller esistenti location, utenti o user_friends? In caso affermativo, dovrebbe essere pluralizzato: search_controller o solo search_controller?

    
posta perseverance 15.02.2013 - 01:00
fonte

2 risposte

1

Dipenderebbe da alcuni dettagli sulle tue opzioni di ricerca. Il nostro sito web ha opzioni di ricerca piuttosto complesse (usando Apache Solr per cercare articoli che hanno un carico pesante di sfaccettature come categorie, proprietà tecniche ecc.).

In realtà ho due controller di ricerca, uno per i clienti (funzionalità di ricerca di base) e uno nella sezione di amministrazione che gestisce alcune query interne più complicate.

Il controller rilegato in uscita è denominato search_controller e ha solo un'azione di show. Principalmente perché l'input di testo che attiva la ricerca è disponibile da qualsiasi punto del sito, quindi puoi eseguire una sola "ricerca". (Non sono felice al 100% di questa singolare denominazione qui e potrebbe cambiarlo)

La variante di amministrazione è chiamata search_controller e ha un'azione indice e un'azione show. L'azione indice mostrerà una pagina con tutte le opzioni di ricerca. Questo quindi attiva l'azione dello show per visualizzare i risultati della ricerca.

Se c'è qualche dubbio, preferirei più andare con la variazione plurale, è solo più semplice. indice che fornisce le opzioni, mostra visualizza i risultati. (anche se usare nuove opzioni potrebbe avere senso)

Dal momento che esegui una ricerca su più tabelle un search_controller dedicato ha molto probabilmente senso, anche se uno dei modelli è il modello "principale", potresti usare questa azione di indice dei modelli anche se questo non è già stato preso. Se inizi ad aggiungere azioni non REST, è un segno che un controller ha senso (non obbligatorio, ovviamente)

Il carico di lavoro per la ricerca effettiva appartiene ai modelli o ad alcune librerie.

    
risposta data 15.02.2013 - 10:18
fonte
0

Creerei un controller di ricerca, ma eseguo la query nei modelli.

    
risposta data 15.02.2013 - 02:52
fonte

Leggi altre domande sui tag