0

私はルビーが初めてで、次のものを持っています:

students = Student.all(:order => "score DESC",
            :limit => 5)

ただし、これにもwhere句を入れたいのですが、「不明なキー: where」というエラーが表示されます。私のテーブルは、フィールドを持つテーブル ( ) をstudent参照しているため、次のようにする必要があります。examt.references :examdate

students = Student.all(:where => "exam.date='01/01/2012'",
                       :order => "score DESC",
                       :limit => 5)

メソッドでwhere句を使用するにはどうすればよいですか?allexam.date='01/01/2012'

4

2 に答える 2

5

引数付きのallメソッドは Rails 3 以前の API であり、次のオプションを取るall(*args)と同等です。find(:all, *args):conditions

students = Student.all(:conditions => "exam.date='01/01/2012'",
                       :order => "score DESC",
                       :limit => 5)

ただし、Rails 3 のチェイン可能なリレーション メソッドを使用することをお勧めします。

students = Student.where("exam.date='01/01/2012'").order('score DESC').limit(5)
于 2012-08-18T17:19:08.973 に答える
1

メソッドを使用する必要があります#where

students = Students.where('exam.date = ?', '01/01/2012').all(order: 'score DESC', limit: 5)
于 2012-08-18T17:10:26.903 に答える