[英]Hash conditions in Active Record
據我所知,我可以重寫此活動記錄查詢
Some.where("a = :a and b = :b", { :a => params[:a], :b => params[:b] })
這條路:
Some.where(:a => params[:a], :b => params[:b])
現在,我需要重寫此查詢:
Some.where("a = :a and b > :b", { :a => params[:a], :b => params[:b] })
我怎么才能得到它 ?
我可以使用范圍條件:
Some.where(:a => params[:a], :b => params[:b]+1..100000)
但是我不能確定恆定的100000。
我看不到您為什么“需要”重寫它。 它按原樣工作,並且無法在基於哈希的條件下正確執行。
也就是說,如果您不喜歡將SQL弄亂Ruby的SQL愛好者,則可以看看出色的Squeel gem ,它可以讓您重寫諸如
where("name LIKE :name AND salary < :salary", {:name => "A%", :salary => 50000})
如
where{(name =~ "A%") & (salary < 50000)}
我認為這很酷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.