0

Ich bin gebrauchter Umfang where(address: [nil, ''], city: [nil, '']) und ich AnfrageWie Verwenden von OR in ActiveRecord Rails 4.1.1?

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

ich AND-OR ersetzen muß. Wie erstelle ich eine Abfrage mit ActiveRecord?

+0

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

Antwort

0

können Sie versuchen, diese

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

In Anwendung

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

Sie Arel gem verwenden können, und bilden Sie abfragen, wie:

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

mit Arel-helpers können Sie es noch kürzer machen: Address.where(Address[:address].in(ids).or(Address[:city].in(ids)))

Verwandte Themen