2012-10-21 50 views
2

我試圖顯示具有屬性值的學生的所有這樣的行,例如COURSE IN一組給定值例如'MS', 'PhD'活動記錄查詢導致SQLException靠近「,」語法錯誤

我使用params獲取students_controller.rb文件中的值。我試着用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查詢結束時,但我無法做任何事情在最後得到該分號。

+0

我認爲你需要在你的'IN'條款的值括號,像'選擇「學生」 * FROM「學生」 WHERE課程(「MS」。 'PhD','BA','MSc')' – Odi

回答

4

你需要使用括號:"course IN (:courses)"

+0

謝謝!那工作。 –