如何在一个查询中跨多态表连接?

tes*_*akt 5 sql activerecord ruby-on-rails polymorphic-associations

我有2个多态关联,我需要通过它来查询.

我有一个news_article表,它与团队,玩家等有多态关系.这些团队,玩家等通过感光学与照片有多态关联.

我需要找到至少有一张500px宽的图片的所有文章.

文章模型我有一个has_many:团队(通过多态表)和团队中我有一个has_many:照片(虽然是另一个多态表)

我以为我可以使用这样的连接

Article.find(:last,:joins => {:teams =>:photos},:conditions =>"photos.aspect_ratio <1.55 AND photos.aspect_ratio> 1.30")

但它不起作用.有任何想法吗?

Sou*_*its 2

希望这是您的设置...

class Article < ActiveRecord::Base
  has_many :teams
end

class Team < ActiveRecord::Base
  has_many :photos
end

class Photo < ActiveRecord::Base
  belongs_to :teams
end
Run Code Online (Sandbox Code Playgroud)

您可以使用以下查询并告诉我们它是否适合您吗?

Article.find(:last, :include => {:teams => :photos}, :conditions => "photos.aspect_ratio < 1.55 AND photos.aspect_ratio > 1.30")
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你...

rgds,Sourcebits 团队