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

时间:2012-10-21 01:09:39

标签: sql ruby-on-rails activerecord sqlite

我正在尝试显示具有属性值的表STUDENTS的所有这些行,例如COURSE IN一组给定值,例如'MS', 'PhD'

我使用params获取students_controller.rb文件中的值。我尝试使用where运行Active Record查询来完成这项工作:

@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查询结束时,但我最后无法做任何分号。

1 个答案:

答案 0 :(得分:4)

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