Вот интересный для вас, ребята ...
У меня есть отношение HABTM (has_and_belongs_to_many) между "Dogs" и "Trips". Моя цель - найти два набора результатов:
1) Собаки, которые были в по крайней мере 1 из последних 3 поездок и называют это @dogs_current
2) Собаки, которые НЕ были ни в одной из последних 3 поездок и называют это @ dogs_old
Я обнаружил, что могу узнать, что такое последние три поездки, выполнив это в модели Trip:
named_scope :last3, :order => 'date DESC', :limit => 3
Но не уверен, как использовать этот список, получить 1 и 2. Этот хак работает, но кажется уродливым. Должен быть лучший способ! :)
@dogs_current = []
@dogs_old = []
@dogs.each do |dog|
if (Trip.last3 - dog.trips).size < 3 then
@dogs_current << dog
else
@dogs_old << dog
end
end
Есть идеи? Спасибо!
-Cam