不是适用于sqlite3和pg的零代码

时间:2013-05-07 22:30:25

标签: ruby-on-rails heroku sqlite pg

我有一个在开发中运行sqlite3的rails应用程序和生产中的pg,目前在Heroku上运行。我的heroku应用程序出错了。我有一个名为'archived'的列,它以nil开头,直到用户按下一个按钮,然后将当前时间写入单元格。然后,所有存档的消息!= nil然后按最近的顺序排序。

以下是我的heroku日志的一部分:

  

2013-05-07T22:00:31.775149 + 00:00 app [web.1]:在34ms内完成500内部服务器错误   2013-05-07T22:00:31.785541 + 00:00 app [web.1]:   2013-05-07T22:00:31.785541 + 00:00 app [web.1]:ActionView :: Template :: Error(PG ::错误:错误:类型为timestamp的输入语法无效:“”   2013-05-07T22:00:31.785541 + 00:00 app [web.1]:LINE 1:...“messages”。* FROM“messages”WHERE(archived&lt;&gt;'')ORDER ...   2013-05-07T22:00:31.785541 + 00:00 app [web.1]:^   2013-05-07T22:00:31.785541 + 00:00 app [web.1] :: SELECT“messages”。* FROM“messages”WHERE(archived&lt;&gt;'')ORDER BY archived desc LIMIT 10):< / p>

这告诉我问题是来自我的控制器的这行代码:

@archived_messages = Message.where("archived <> ''").limit(10).order('archived desc')

我应该更改此代码以使其在sqlite3和pg中都有效?

提前致谢。

1 个答案:

答案 0 :(得分:0)

知道了!

@archived_messages = Message.where("archived IS NOT NULL").limit(10).order('archived desc')

来源:Runs locally with SQLite, but on Heroku: PGError: ERROR: syntax error at or near "NULL"