3

我正在尝试显示具有属性值的表 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})

但我收到以下错误:

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 回答