Hallo,
ich stehe gerade vor einem Verständnisproblem betreffend named scopes und
associations.
Ich habe zwei Models Publication und Price die durch eine
has_many-Association
verbunden sind:
class Publication < ActiveRecord::Base
has_many :prices
end
class Price < ActiveRecord::Base
belongs_to :publication
named_scope :effective,
:conditions => [‘valid_from <= ? AND valid_through >= ?’,
Date.today, Date.today]
end
Jeder Price hat eine durch einen Anfangs- und ein Endzeitpunkt
vorgegebene
Gültikeitsdauer.
Price.effective gibt also die Preise aus, die zum Zeitpunkt der Abfrage
gültig sind.
So weit so gut.
Jetzt benötige ich allerdings auch eine Möglichkeit, daß eine Product-Methode
sämtliche Publications zu erhalten, die Preise haben, die gerade gültig sind.
Ich könnte jetzt für Publication noch einen scope anlegen, der über include dann
den entsprechenden scope erzeugt:
class Publication < ActiveRecord::Base
has_many :prices
named_scope :effective,
:include => :prices,
:conditions => ['prices.valid_from <= ? AND
prices.valid_through
= ?’, Date.today, Date.today]
end
Aber das erscheint mir nicht wirklich DRY. Gibt es denn nicht eine
Möglichkeit,
mir die gültigen Produkte unter Verwendung des unter Price bereits angelegten
scope zu erhalten?
Viele
Grüße
Michael K.