leo*_*nel 11 ruby activerecord ruby-on-rails
假设我有两个模型: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
Run Code Online (Sandbox Code Playgroud)
如何创建ActiveRecord查询以按字母顺序对计划的课程进行排序?
Ben*_*ger 19
尝试...
ScheduledCourse.joins(:course).order('course.name')
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您可能需要.all在加入条件之前调用,如下所示:
ScheduledCourse.all.joins(:course).order('course.name')
Run Code Online (Sandbox Code Playgroud)
像luacassus说的,这个答案可以帮助 ; 我认为该答案中的语法是pre-Arel(ActiveRecord 3),但它可以完成工作.希望有所帮助!
编辑:
正如@FellowStranger所提到的,现在似乎正确的语法
ScheduledCourse.joins(:course).order('courses.name')
Run Code Online (Sandbox Code Playgroud)
Fel*_*ger 11
ScheduledCourse.joins(:course).order('courses.name asc')
Run Code Online (Sandbox Code Playgroud)
请注意,表名应为复数形式.此代码已经过测试.
| 归档时间: |
|
| 查看次数: |
5500 次 |
| 最近记录: |