假设我有两种模式:课程和预定课程。
课程模型具有名称属性。
当然has_many:预定课程 scheduled_courses:belongs_to course
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查询以按字母顺序对预定课程进行排序?
答案 0 :(得分:19)
...试
ScheduledCourse.joins(:course).order('course.name')
如果这不起作用,您可能需要在加入条件之前调用.all
,如下所示:
ScheduledCourse.all.joins(:course).order('course.name')
喜欢 luacassus 说,this answer can help;我认为该答案中的语法是pre-Arel(ActiveRecord 3),但它可以完成工作。希望有所帮助!
编辑:
正如@FellowStranger所提到的,现在正确的语法似乎是
ScheduledCourse.joins(:course).order('courses.name')
答案 1 :(得分:11)
ScheduledCourse.joins(:course).order('courses.name asc')
请注意,表名应为复数形式。此代码已经过测试。