我喜欢为rails制作命名范围。然而,我遇到了一些泡菜。 我非常适合使用命名范围进行连接:
named_scope :foo, :joins => :bar, :conditions => "bar_attribute = 'something'"
现在假装我有一个名为baz的表,它包含bar表中的外键。我需要这样的东西:
named_scope :foo, :joins => (:bar => :baz), :conditions => "bar.id = baz.bar_id AND baz_attribute = 'something_else'"
这有多可能?
谢谢
答案 0 :(得分:3)
你并不遥远。这应该适合你:
named_scope: foo, :joins => {:bar => :baz}, :conditions => "bazes.your_attr = 'something_else'"
这假设baz的复数是bazes。您不需要指定将bar.id连接到bazes.bar_id的条件,它将从以下推断:连接。
答案 1 :(得分:0)
也许你可以与has_many :through => ...
关系结合使用。