我在Heroku上放了一個應用程序,它在本地運行良好(使用sqlite3作爲測試數據庫的gem),當我推到Heroku並嘗試運行時,我不斷收到錯誤:Heroku + Rails + PostgreSQL問題
ActiveRecord::StatementInvalid (PG::Error: ERROR: syntax error at or near "order"
LINE 1: ...lery_url_id = 'k19fv2mytjEb_3gCezLeRA') ORDER BY `order` ASC ^
: SELECT "pictures".* FROM "pictures" WHERE (gallery_url_id = 'k19fv2mytjEb_3gCezLeRA') ORDER BY `order` ASC):
app/controllers/galleries_controller.rb:38:in `show'
具體地在這條線:
@pictures = Picture.find(:all, :conditions => [ 'gallery_url_id = ?', @gallery.url_id ], :order => "`order` ASC")
注:順序是一個數據庫字段,而不是一個SQL調用或參考。所以不要告訴我我正在做兩個訂單。那會很愚蠢。除非它以某種方式被解析。這也將是愚蠢的。
我知道這是在生產環境中在本地測試和PostgreSQL(pg)中使用SQLite的一些問題。我的問題是我需要做些什麼來解決這個問題?這是否是由於我在調用只有SQLite而不支持PostgreSQL的查找中調用的標誌?
這裏有限的PG知識,但你試過[訂單]而不是'訂單'? – 2012-07-13 17:34:30
做了這個,唯一被修改的是它現在是一個語法順序,處理「[」所以我猜這是一個失敗的嘗試:/ – user1470511 2012-07-13 17:39:53
@DominicGoulet:這是一個SQL服務器主義,雙引號是標準語法。 – 2012-07-13 17:44:30