Ich mache eine Sport-Anwendung mit Ligen und Veranstaltungen, enthalten die Ereignisse eine league_id
, die Ligen haben eine name
und eine country_name
. Wie kann ich heute alle Veranstaltungen mit Startdatum zusammen mit dem Namen und Land der Liga bekommen?Join mit Where-Klausel, die bestimmte Datensätze filtert, Schienen aktiven Datensatz
Ich habe versucht:
League.joins(:events).where(events: {event_start: Time.zone.now..Time.zone.now.end_of_day})
Aber das gibt alle Ligen, die ein Ereignis heute haben, wenn ich dann die Ereignisse aus dieser spezifischen Liga zugreifen versuchen, alle Ereignisse enthalten sind, und nicht nur diejenigen, die sind heute kariert sein.
Dies funktioniert auf end_of_day, danke! Das Problem ist jedoch, dass ich jetzt nicht in der hierarchischen Struktur, die ich möchte (iterieren über Ligen, als Ereignisse) Ich habe nur folgendes geschrieben, um das zu lösen: 'events = Event.includes (: league) .where (event_start : Time.zone.now..Time.zone.now.end_of_day) events_hash = {} events.each do | event | \t events_hash [event.league.group] || = {} \t events_hash [event.league.group] [event.league.name] || = [] \t events_hash [event.league.group] [Ereignis. liga.name] << event ende events_hash' Gibt es eine offensichtlich elegantere Möglichkeit, dies zu tun? (Sorry für die Formatierung) – Reinier