我在 Heroku 上建立了一个在本地运行良好的应用程序(使用 sqlite3 作为测试中数据库的 gem),当我推送到 Heroku 并尝试运行它时,我不断收到此错误:
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")
注意: order 是一个数据库字段,而不是 SQL 调用或引用。所以不要告诉我我正在做两个订单。那将是愚蠢的。除非它以某种方式被解析。这也很愚蠢。
我知道在本地测试中使用 SQLite 和在生产环境中使用 PostgreSQL (pg) 是一些问题。我的问题是我需要做什么来解决这个问题?是因为我在 find 中调用的标志仅受 SQLite 支持而不是 PostgreSQL 吗?