По подразбиране свързването на тези where
заедно създава И, което е това, което искате.
Толкова много са:
class Company < ActiveRecord::Base
def self.where_1
where(...)
end
def self.where_2
where(...)
end
end
@companies = Company.where_1.where_2
====== АКТУАЛИЗИРАНО ======
Има два случая:
# case 1: the fields selecting are different
Company.where(:id => [1, 2, 3, 4]) & Company.where(:other_field => true)
# a-rel supports &, |, +, -, but please notice case 2
# case 2
Company.where(:id => [1, 2, 3]) & Company.where(:id => [1, 2, 4, 5])
# the result would be the same as
Company.where(:id => [1, 2, 4, 5])
# because it is &-ing the :id key, instead of the content inside :id key
Така че, ако сте в случай 2, ще трябва да направите като това, което @apneadiving коментира.
Company.where(...).all & Company.where(...).all
Разбира се, правенето на това изпраща две заявки и най-вероятно е поискало повече резултати, отколкото са ви необходими.
person
PeterWong
schedule
22.06.2011