Setup: J'ai un Job et un Prix modèle où le travail comporte deux champs start_date et date_fin et la Prix a une autre zone de date effective_at. Le Job has_many Prix si une région. J'utilise le by_star gem qui permet des requêtes comme between_times qui obtient simplement les enregistrements entre les champs définis dans le modèle.Rails a de nombreux à travers le champ de la date d'un modèle se situe entre les dates d'autres modèles
J'ai besoin tous les prix qui se situent entre start_date et de date_fin du travail. Je crois que j'ai besoin d'être défini dans le has_many à en raison du cadre rails_admin, mais ne peut pas trouver la meilleure façon de le faire. Voici les modèles:
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
Je suis limitée par des moyens pour y parvenir en raison du fait que l'application est construite sur le cadre rails_admin, sinon je ferais quelque chose comme ci-dessous (qui fonctionne très bien, mais gagné « t afficher correctement dans le cadre rails_admin
def job_opis_prices
prices.between_times(self.start_date, self.end_date)
end
J'ai aussi essayé.
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
Toute aide est appréciée GRANDEMENT!