2013-07-18 62 views
3

我想在執行這個查詢Rails應用程序查詢在紅寶石檢查整數值在軌道上

Video.where("category= 'film' AND grant = 1").order('created_at DESC').page(params[:page]).per_page(10) 

這裏授予店的整數值。

和我收到以下錯誤

Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'grant = 1) ORDER BY created_at DESC LIMIT 10 OFFSET 0' at line 1: SELECT `videos`.* FROM `videos` WHERE (category= 'film' AND grant = 1) ORDER BY created_at DESC LIMIT 10 OFFSET 0 

在此先感謝

回答

5

的問題是有補助。 GRANT是MySql中的保留字。你應該在他們周圍使用反勾號。

Video.where("category= 'film' AND `grant` = 1").order('created_at DESC').page(params[:page]).per_page(10) 

會做我的工作。請參考Reserved Words

+1

更多的Rails-ish實現將使用'where(category:「film」,grant:1)' – thomasfedb

+2

如果我們想使用OR而不是AND,該怎麼辦? – rohith

0

檢查:

Video.where("category = ? AND `grant` = ?", "film", 1).order('created_at DESC').page(params[:page]).per_page(10) 
+0

我也得到了同樣的錯誤! :( – rohith

4

試試這個..

@videos=Video.where(:category => 'film',:grant => 'yes').order('created_at DESC').page(params[:page]).per_page(10) 
+0

謝謝,它爲我工作...但我不知道爲什麼其他查詢不起作用。 – rohith

+1

我也改變了:授予=>'是':授予=>'1'因爲我的「授予」存儲整數值 – rohith