Active Record查询导致SQLException靠近“,”语法错误

Arp*_*han 3 sql sqlite activerecord ruby-on-rails

我正在尝试显示表STUDENTS的所有此类行,这些行具有属性值,例如COURSE IN一组给定值,例如'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})
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

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

我认为该错误可能是由于缺少;在Active Record生成的SQL查询的末尾,但是我无法做任何事情来最后获得该分号。

Jam*_*mes 5

您需要使用括号: "course IN (:courses)"