Rails 3.按关联模型排序

假设我有两个模型:Course和ScheduledCourse。

Course模型具有name属性。

课程has_many:预定课程scheduled_courses:belongs_to课程

courses id | name 1 | biology 2 | history 3 | chemistry 4 | literature scheduled_courses id | course_id 1 | 2 2 | 4 3 | 1 4 | 2 

如何创建ActiveRecord查询以按字母顺序对计划的课程进行排序?

尝试…

 ScheduledCourse.joins(:course).order('course.name') 

如果这不起作用,您可能需要在连接条件之前调用.all ,如下所示:

 ScheduledCourse.all.joins(:course).order('course.name') 

就像luacassus所说, 这个答案可以帮助 ; 我认为该答案中的语法是pre-Arel(ActiveRecord 3),但它可以完成工作。 希望有所帮助!

编辑:

正如@FellowStranger所提到的,现在似乎是正确的语法

 ScheduledCourse.joins(:course).order('courses.name') 
 ScheduledCourse.joins(:course).order('courses.name asc') 

请注意,表名应为复数forms。 此代码已经过测试。