2014-06-05 21 views
7

Mam dwa modele Show i Performance (pokaż jak w przedstawieniu lub serialu komediowym). Są one powiązane w następujący sposób w modelach:rails scope przez has_many association

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

class Performance < ActiveRecord::Base 
    belongs_to :show 
end 

W modelu wydajności istnieje data-godzina o nazwie: czas_początkowy.

Jak zdefiniować zakres w modelu, który zwraca wszystkie programy z co najmniej jedną wydajnością, której: start_time jest w przyszłości?

Ponadto, jak zdefiniować zakres, który zwraca wszystkie programy, które nie mają żadnych wykonań, dla których: czas_początku jest w przyszłości?

+0

jakie jest twoje pytanie? – kikicarbonell

+0

Myślałem, że to było jasne. Przeformułuję to jako pytania. Istnieją dwa. –

+0

ok ... @ KevinM, jeśli moja sugestia była poprawna, proszę potwierdzić to jako rozwiązanie – kikicarbonell

Odpowiedz

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 
Powiązane problemy