这里有一个对你们来说很有趣的...
我在“狗”和“旅行”之间有 HABTM(has_and_belongs_to_many)关系。我的目标是找到两个结果集:1)最近 3 次旅行中至少有 1 次的狗并称其为 @dogs_current 2)最近 3 次旅行中没有任何一次的狗并称其为 @dogs_old
我发现我可以通过在 Trip 模型中执行此操作找到最后 3 次行程:
named_scope :last3, :order => 'date DESC', :limit => 3
但不确定如何使用该列表获取 1 和 2。这个 hack 有效,但看起来很难看。一定会有更好的办法!:)
@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
有任何想法吗?谢谢!-凸轮