2011-03-17 61 views
1
active_courses_past_week = CourseEnrollment.select("courses.*"). 
joins(:course). 
where("date(course_enrollments.created_at) BETWEEN ? and ?", Date.parse(start_date.strftime('%Y-%m-%d')), Date.parse(end_date.strftime('%Y-%m-%d'))). 
group("courses.id") 

上述查询似乎很奇怪,因为我从课程注册查询,但只关心他们在两个日期之间注册的课程数据。这似乎很奇怪,因为我没有使用CourseErnollment模型中的任何字段。有什么建议么?Ruby On Rails查询从模型中返回另一个表格字段

回答

2

这就是我将如何使用范围而不是“原始”SQL编写它。

active_courses_past_week = CourseEnrollment.where(:created_at => start_date..end_date)) 
              .joins(:course) 
              .group(courses.id) 
+0

+1用于重构。你忘了'group(“courses.id”)' – fl00r 2011-03-17 14:01:36

相关问题