2012-04-26 15 views
11

私は2つのモデル、CourseとScheduledCourseを持っています。Rails 3.関連モデル別ソート

コースモデルには名前属性があります。

コースに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のクエリがアルファベット順にスケジュールコースをソートすることができますか?

+2

これを試してください:http://stackoverflow.com/questions/1530131/rails-order-using-a-has-many-belongs-to-relationship – luacassus

+0

あなたが試したことを投稿してください... – EricM

答えて

18

そうのように、これが機能しない場合、あなたの条件に参加する前に、あなたが.allを呼び出す必要があります...

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

をお試しください:

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

ようluacassusthis answer can help、言っ;私はその答えの文法はpre-Arel(ActiveRecord 3)だと思うが、それは仕事を終わらせるだろう。希望が助けてくれる!

EDIT:@FellowStrangerで述べたように

、正しい構文は、今日、テーブル名は複数形であるべきこと

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

ノートのようです。このコードはテストされています。

+1

この回答それが受け入れられた答えまたはBen Kreegerが与えた答えを選択する必要があります。 – RickyD

関連する問題