Rails可用性查询

时间:2015-01-11 11:22:47

标签: sql ruby-on-rails activerecord

我有一个培训师模型和一个培训师可用性模型,可以存储培训师的开始和结束时间。 trainer_availablements属于培训师。

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

在不加载整个trainer_availabilties表的情况下查询此结构的最佳实践方法是什么?还有另一种最佳实践方法,包括一些自我引用来减少资源吗?可用的表格显然会随着时间的推移而增长并变得非常大。

1 个答案:

答案 0 :(得分:1)

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

#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)