我想知道如何制作一个使用其关联范围的范围。让我给你举个例子。 (我希望你没有发现它是人为的)
我有一个模型Wife
和Husband
。丈夫的范围基于他的几个属性,过滤good
丈夫。
我如何在Wife
上构建一个范围来过滤所有拥有good
丈夫的妻子?
class Wife
#Sorry for how that sounds
belongs_to :husband
scope :with_good_husband, -> { ???? }
end
class Husband
scope :good, -> { ...whatever... }
end
答案 0 :(得分:0)
通常情况下,我会使用两个查询来从连接中释放范围(由于某些方法中出现一些关联魔法,以后很难操作):
scope :with_good_husband, -> { where(husband_id: Husband.good.pluck(:id)) }