一個模型有兩個感興趣的屬性,forename和城鎮。我想尋找理查德(倫敦)和布賴恩(馬德里)。Rails/Arel - 組合AREL謂詞時的優先級
在長手,
p=Person.scoped
pred1=p.table[:forename].eq('Richard').and(p.table[:town].eq('London'))
pred2=p.table[:forename].eq('Brian').and(p.table[:town].eq('Madrid'))
pred3=pred1.or(pred2)
我希望這個包裹謂詞在括號中保持查詢的完整性。但看着pred3.to_sql給出了意想不到的迴應:
"(`person`.`forename` = 'Richard' AND `person`.`town` = 'London' OR `person`.`forename` = 'Brian' AND `person`.`town` = 'Madrid')"
如何讓Arel生成正確的查詢?
您是否曾經找到過解決方案?我遇到同樣的問題,建議的答案不起作用。 – CrashRoX
@CrashRoX,我已經在下面發佈了一個答案。 – John