11

Course と ScheduledCourse という 2 つのモデルがあるとします。

Course モデルには name 属性があります。

course 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 クエリを作成するにはどうすればよいですか?

4

2 に答える 2

20

試す...

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

これが機能しない場合は、次.allのように、結合条件の前に呼び出す必要がある場合があります。

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

luacassusが言ったように、この答えは役に立ちます。その答えの構文はArel(ActiveRecord 3)より前のものだと思いますが、それで仕事は完了します。それが役立つことを願っています!

編集:

@FellowStrangerが述べたように、最近の正しい構文は次のようです

ScheduledCourse.joins(:course).order('courses.name')
于 2012-04-26T15:04:45.997 に答える
12
ScheduledCourse.joins(:course).order('courses.name asc')

テーブル名は複数形にする必要があることに注意してください。このコードはテスト済みです。

于 2012-10-24T01:06:20.547 に答える