Setup: Ich habe einen Job und ein Preis Modell, in dem der Job hat zwei Felder start_date und end_date und die Preis hat ein anderes Datumsfeld effective_at. Die Job has_many Preise obwohl eine Region. Ich verwende den by_star Edelstein, der Abfragen wie zwischen _times erlaubt, die einfach die Aufzeichnungen zwischen den definierten Feldern im Modell erhält.Rails hat viel Durchdatumsfeld eines Modell zwischen Daten anderen Modell fällt
Ich brauche alle Preise die start_date und end_date zwischen den Hiobs fallen. Ich glaube, ich muss es in der has_many durch aufgrund der Rails_admin Rahmen definiert werden, aber kann nicht den besten Weg, um es zu erreichen. Hier sind die Modelle:
class Job < ActiveRecord::Base
belongs_to :region
has_many :prices, through: :region
# fields: start_date, end_date
end
class Price < ActiveRecord::Base
belongs_to :region
has_many :jobs, through: :region
# fields: effective_at
end
class Region < ActiveRecord::Base
has_many :jobs
has_many :prices
end
Ich bin begrenzt auf eine Weise, dies zu erreichen aufgrund der Tatsache, dass der App auf den rails_admin gebaut Rahmen, sonst würde ich so etwas wie unten tun (das funktioniert gut, aber gewonnen ‚t korrekt im rails_admin Rahmen angezeigt
def job_opis_prices
prices.between_times(self.start_date, self.end_date)
end
ich habe auch versucht.
class FracJob < ActiveRecord::Base
has_many :opis_prices, through: :region do
def during_job
where(effective_at: between_times(start_time..end_time))
end
end
end
Jede Hilfe wird GROSS geschätzt!