Filtrare i risultati in modo Agile con Ruby on Rails
Vi faccio subito un esempio per farvi capire cosa intendo:
Blog.find(:all,
:conditions => ["new=? and type=?",true, params[:type_id]])
Il problema è che se non passo il parametro params[:type_id] ottengo un errore, in questo caso facilmente gestibile, ma se avessi 4 o 5 clausole, il tutto sarebbe più macchinoso.
Quindi ho optato per un approccio diverso.
Per prima cosa scaricate il mio plugin ed installatelo nel vostro progetto:
script/plugin install http://lipsiasoft.googlecode.com/svn/trunk/filter Ora per fare quello che abbiamo accennato all'inizio possiamo semplicemente fare cosi:
filters = Filter.new
filters.equal params[:type_id], :type_id if params[:type_id]
filters.great params[:date_start], :created_at if params[:date_start]
filters.less params[:date_end], :created_at if params[:date_end]
filters.equal params[:cat_id], :cat_id if params[:cat_id]
blogs = Blog.find(:all,
:conditions => filters.conditions)
Agile no?
Attendo un bel voto su AgileWebDevelopment
Commenti
Categories
- Altro (17)
- Comunicati Stampa (1)
- Fedora (1)
- Linux (17)
- Mac (45)
- Ruby (25)
- Ruby on Rails (44)
- Tutorials (20)
- Windows (13)
Archivi
- March 2009 (1)
- December 2008 (1)
- November 2008 (1)
- October 2008 (1)
- June 2008 (1)
- May 2008 (5)
- April 2008 (2)
- March 2008 (1)
- January 2008 (3)
- December 2007 (5)
Sponsor
- LipsiaSoft
- LipsiaCars
- Assistente alle Compravendite - eBay
- Giardini e Irrigazione Milano
- LipsiaSHOP
- Ristrutturazione Varese
- Affitto Appartamenti a Fortaleza - Brasil.it
- B&B Center - Bellezza e Benessere
- Rubinetti - Bagno Italiano
- Manta Security
- MarcaClac Blog
- Web Temporary Shop
- Lampada Proiettore
- Soletta e Plantare - Noene