執行IS IN查詢的最佳方法是什麼,尤其是在涉及連接時?ActiveRecord 3「IS IN」其中查詢
目前,我有類似如下:
Table1.joins(:table2).where({ :table2s => { :ident => params[:idents].split(',') } })
這工作,並能夠完成任務。得到的WHERE子句類似
WHERE "table2s"."ident" IS IN ('a','b','c')
我覺得這將是清潔的,但:
Table1.joins(:table2).where("table2s.ident IS IN ?", params[:idents]:split(','))
有沒有一種方法,以避免第一的風格和使用的東西更喜歡第二種風格? (即,where方法可以識別數組,並使用IS IN而不是'='運算符)
'PARAMS [:idents]'看起來像一個字符串,所以他需要'split' – fl00r 2011-04-27 19:30:06
是PARAMS將是一個字符串 – mikeycgto 2011-04-27 19:56:02
至少在這種情況下 – mikeycgto 2011-04-27 20:06:00