3

COURSE IN特定の値のセットなど、属性の値を持つテーブル STUDENTS のすべての行を表示しようとしています'MS', 'PhD'

を使用して、students_controller.rb ファイルの値を取得しますparams。仕事をするために使用してActive Recordクエリを実行しようとしましたwhere

@all_courses = ['MS', 'PhD', 'BA', 'MSc']

@students = Student.where("course IN :courses" , {:courses => params.has_key?(:courses) ? params[:courses].keys : @all_courses})

しかし、次のエラーが表示されます。

SQLite3::SQLException: near ",": syntax error: SELECT "students".* FROM "students"  WHERE (course IN 'MS', 'PhD', 'BA', 'MSc')

エラーは ; がないことが原因である可能性があると思います。Active Recordによって生成されたSQLクエリの最後にありますが、最後にそのセミコロンを取得するために何もできません.

4

1 に答える 1

5

括弧を使用する必要があります。"course IN (:courses)"

于 2012-10-21T01:16:13.050 に答える