Skip to main content
 首页 » 编程设计

sql之Active Record 查询导致 SQLException 接近 ","语法错误

2025年05月04日123shanyou

我正在尝试显示表 STUDENTS 的所有此类行,这些行具有属性值,例如 COURSE IN 一组给定值,例如'硕士', '博士'.

我使用 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 查询的末尾,但我无法做任何事情来获取末尾的分号。

请您参考如下方法:

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