Rails 可用性查询

Rails Availability Query

我有一个培训师模型和一个 trainer_availabilities 模型,它存储培训师的开始和结束时间。 trainer_availabilities belongs_to 训练师

我想查询 trainer_availabilties 模型和 return 在特定开始和结束时间可用的所有培训师(我正在使用带时区的时间戳)。我将发送开始时间和结束时间作为参数。

查询此结构而无需加载整个 trainer_availabilties table 的最佳实践方法是什么?是否有另一种最佳实践方法包括一些自我引用以减少资源?可用 table 显然会随着时间的推移而增长并变得相当大。

我最终使用了以下代码。欢迎提出改进建议。我为那些从客户端发送信息的人提供了解析。

#parse dates
@start_time = DateTime.parse(params[:start_time])
@end_time = DateTime.parse(params[:end_time])

#convert to string
@start_time = @start_time.to_s
@end_time = @end_time.to_s


@trainer_avails = TrainerAvailability.where('start_time <= ? AND start_time < ? AND end_time >= ? AND end_time > ?', @start_time, @end_time, @end_time, @start_time)