class User < ActiveRecord::Base
has_many :events
has_many :trainings, -> { distinct }, through: :events
end
class Event < ActiveRecord::Base
belongs_to :user
belongs_to :training
end
class Training < ActiveRecord::Base
has_many :events
has_many :user, -> { distinct }, through: :events
end
Ereignistabelle enthält:Wählen Ereignisse basierend auf Kriterien in gehört zur Tabelle
t.date "date"
t.integer "user_id"
t.integer "training_id"
Trainings Tabelle
t.text "name"
t.integer "update_frequency"
enthält Ich möchte ein Array erstellen, die nur Ereignisse enthält, die die folgenden Merkmale erfüllen, Zustand:
event.date + training.update_frequency> Datum.now
Dadurch wird ein Array mit "überfälligen" Ereignissen erstellt.
Um zu erklären: Zum Beispiel sagen "Basic Life Support" Training hat update_frequency = 365 - d. H. Es sollte jährlich erfolgen. Ich möchte "überfällige" Ereignisse auswählen, bei denen das Datum dort angegeben wurde + ein Jahr ist größer als Date.now.
Alle Gedanken würden dankbar erhalten werden!
Es ist möglich, das obige zu tun und ein Array aller Ereignisse zurückzugeben, die diese Bedingung erfüllen? – jameslagan
Haben Sie diesen Code ausprobiert? – jmschles