2010-10-04 18 views
5

Sorgulamam gereken 2 polimorfik ilişki var.Bir sorguda polimorf tablolara nasıl katılınır?

Ekipler, oyuncular vb. Ile polimorfik bir ilişkisi olan bir news_article tablosum var. Bu takımlar, oyuncular vs. fototenik yoluyla fotoğraflara polimorfik bir ilişkiye sahipler.

En az bir resim 500 piksel genişliğinde olan tüm makaleleri bulmam gerekiyor.

Madde modeli bir has_many var: takımlar (polimorfik masanın üzerinden) ve takım halinde bir has_many var: Ben kullanabilirsiniz düşündüm (başka polimorfik tablo olsa da)

bu

gibi katılır fotoğraflar

Article.find (: geçen,: {fotoğrafları: takımlar =>}: => katılır koşulları> "photos.aspect_ratio < 1.55 VE photos.aspect_ratio> 1.30" =)

ama çalışmıyor . Herhangi bir fikir?

+0

Eğer alıyorsanız hata gönderebilir miyim? – nfm

+0

sadece kilitleniyor. Günlük, makale tablosundan 'alanları göster' yazıyor, ama işte bu. – tesserakt

+0

Modellerinizi gönderebilir misiniz? Çalıştığı –

cevap

2

Umut bu kurulum olduğu ...

class Article < ActiveRecord::Base 
    has_many :teams 
end 

class Team < ActiveRecord::Base 
    has_many :photos 
end 

class Photo < ActiveRecord::Base 
    belongs_to :teams 
end 

Lütfen th kullanabilirsiniz Aşağıdaki sorguyu ve sizin için uygun olup olmadığını bize bildirin?

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

... Bu yardımcı olur umarım

rgds, Sourcebits Takım

+0

, neden diğerinin yapmadığını bilmiyorum. – tesserakt

+0

Aslında, birleşmeler de işe yarıyor. Neden daha önce olmadığını bilmiyorum ... – tesserakt

2

zaten Rails 3 kullanıyorsanız: Eğer Rails 2.3.8 kullanıyorsanız

Article.joins(:teams).where(condition).joins(:photos).where(condition) 

:

Article.find(:all, :include => {:teams => :photos}, :conditions => [YOUR CONDITIONS]) 

Bu yardımcı olur umarım ...