2010-10-04 31 views
5

Tôi có 2 liên kết đa hình thông qua đó tôi cần truy vấn.Làm cách nào để tham gia trên các bảng đa hình trong một truy vấn?

Tôi có bảng news_article có liên kết đa hình cho các đội, người chơi, v.v. Các đội, cầu thủ, v.v. có liên kết đa hình cho ảnh qua phototenic.

Tôi cần tìm tất cả các bài viết có ít nhất một hình ảnh rộng 500px.

Các Điều model Tôi có một has_many: đội (thông qua bảng đa hình) và trong đội tôi có một has_many: hình ảnh (mặc dù một bảng đa hình)

Tôi nghĩ rằng tôi có thể sử dụng tham gia như thế này

Article.find (: cuối cùng,: tham gia => {: đội =>: ảnh},: conditions => "photos.aspect_ratio < 1,55 VÀ photos.aspect_ratio> 1.30")

nhưng nó không hoạt động . Bất kỳ ý tưởng?

+0

Bạn có thể gửi các lỗi mà bạn đang nhận được? – nfm

+0

nó chỉ bị treo. nhật ký nói 'hiển thị các trường' từ bảng bài viết, nhưng đó là nó. – tesserakt

+0

Bạn có thể đăng các mô hình của mình không? –

Trả lời

2

Hy vọng điều này là thiết lập của bạn ...

class Article < ActiveRecord::Base 
    has_many :teams 
end 

class Team < ActiveRecord::Base 
    has_many :photos 
end 

class Photo < ActiveRecord::Base 
    belongs_to :teams 
end 

Bạn có thể sử dụng thứ e truy vấn sau đây và cho chúng tôi biết nếu nó hoạt động cho bạn?

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

Hy vọng Nó giúp ...

Rgds, Sourcebits Đội

+0

đã hoạt động, tôi không biết tại sao người kia lại không làm. – tesserakt

+0

Thực tế, các kết nối cũng hoạt động. Tôi không biết tại sao nó không sớm hơn ... – tesserakt

2

Nếu bạn đang sử dụng Rails 3 đã:

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

Nếu bạn đang sử dụng Rails 2.3.8:

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

Hy vọng Nó giúp ...

Các vấn đề liên quan