0

我習慣範圍where(address: [nil, ''], city: [nil, '']),我得到的請求如何在ActiveRecord Rails 4.1.1中使用OR?

WHERE ((`address`.`address` = '' OR `address`.`address` IS 
NULL) AND (`address`.`city` = '' OR `address`.`city` IS 
NULL)) 

我需要更換ANDOR。如何使用ActiveRecord構建查詢?

+0

http://stackoverflow.com/questions/17192829/does-rails-4-have-support-for-or-queries – maicher

回答

0

你可以試試這個

where("address.address in (?) or address.city in (?)", [nil, '']) 

在應用

scope :empty_address, -> { where("address.address in (?) or address.city in (?)", [nil, '']) } 
Address.empty_address 
0

您可以使用Arel gem,形成你查詢,如:

IDS =零, ''] Address.where(Address.arel_table[:address].in(ids).or(Address.arel_table[:city].in(ids)))

Arel-helpers你可以使它更短: Address.where(Address[:address].in(ids).or(Address[:city].in(ids)))

相關問題