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。 此代码已经过测试。