我正在制作一个包含联盟和活动的体育应用程序,这些活动包含league_id
,联盟有name
和country_name
。如何在今天的开始日期以及联赛名称和国家/地区获得所有比赛。
我试过了:
League.joins(:events).where(events: {event_start: Time.zone.now..Time.zone.now.end_of_day})
但是这会让所有今天有联赛的联赛回归,当时我试图访问特定联赛中的赛事,所有赛事都包括在内,而不仅仅是今天的格子赛事。
答案 0 :(得分:2)
从Event
开始,并包含相关League
以避免N + 1问题。
Event.includes(:league).where(event_start: Time.zone.now..Time.zone.now.end_of_day)
答案 1 :(得分:1)
要获取今天开始日期的所有活动,我认为您需要在beginning_of_day和end_of_day之间进行搜索
Event.includes(:league).where(event_start: Time.zone.now.beginning_of_day..Time.zone.now.end_of_day)
或
Event.includes(:league).where("event_start >= ? && event_start <= ?", Time.zone.now.beginning_of_day, Time.zone.now.end_of_day)