簡體   English   中英

活動記錄中的哈希條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM