29Sep/091
Rails的Find SQL語法在多變情況下.
前陣子寫內部簡單的Search Engine,面對SQL其實突然有點失措.
在Rails底下,sql通常是下指令如
Find, Find_by.
傳統的是 Obj.find(:all,:conditions=>["sql command",vara ,varb ,varc])
然而有時要做進階的判斷,依據狀況可能有不同的參數&Conditions,又不想單純的find_by_sql.
如何改變conditions指令呢?
fcon=[''] fcon[0]="a like ? and b like ? and c like ?" fcon << params[:a] fcon << params[:b] fcon << params[:c] fcon[0]="d like ? and e like ? and f like ?" fcon << params[:d] fcon << params[:e] fcon << params[:f] Obj.find(:all,:condition=>fcon)
如此一來就不用find_by_sql,又可以達成conditions的變化.


November 2nd, 2009 - 05:06
Other variant is possible also