2014-06-05 10 views
7

Ich habe zwei Modelle für Show und Performance (Show wie in einer Theaterstück oder Comedy-Show). Sie sind in den folgenden Modellen wie folgt verknüpft:Schienen Anwendungsbereich durch has_many Assoziation

Im Leistungsmodell gibt es eine Datetime namens: start_time.

Wie definiere ich einen Bereich im Modell, der alle Shows mit mindestens einer Performance zurückgibt, deren: start_time in der Zukunft liegt?

Wie definiere ich auch einen Bereich, der alle Shows zurückgibt, die keine Performances haben, in denen: start_time in der Zukunft liegt?

+0

was ist Ihre Frage? – kikicarbonell

+0

Ich dachte, es war klar. Ich werde es als Fragen umformulieren. Es gibt zwei. –

+0

ok ... @ KevinM wenn mein Vorschlag richtig war, bitte bestätige es als Lösung – kikicarbonell

Antwort

7
class Show < ActiveRecord::Base 
    has_many :performances, :dependent => :destroy 
    accepts_nested_attributes_for :performances 

    scope :shows_with_pending_performance, includes(:performances).where("performances.start_time >= ? ", Date.today) 
end 

class Performance < ActiveRecord::Base 
    belongs_to :show 
end