named_scope的PGError语法问题

时间:2010-03-17 21:06:37

标签: mysql postgresql named-scope

我有以下的named_scope在MySQL和sqlite中运行良好但在Postgres中使用炸弹:

course.rb

named_scope :current, :conditions => ['start < ? AND end > ? ', Time.now, Time.now], :order => 'start ASC'

然后我打电话给:

Course.current

我收到错误:

  

PGError:错误:或者语法错误   靠近“终点”LINE 1:... WHERE(start&lt;   '2010-03-17 14:03:24.995746'和结束&gt;   “201 ...                                                                ^:SELECT count(*)AS count_all FROM   “课程”WHERE(开始&lt;   '2010-03-17 14:03:24.995746'和结束&gt;   '2010-03-17 14:03:24.995748')

我的google-fu失败了,所以我希望Stack Overflow不会。关于如何使Postgres友好的范围的任何想法?谢谢,

德鲁

1 个答案:

答案 0 :(得分:1)

END是关键字,您必须使用其他名称或将其放在双引号“end”之间。

如果在列名周围使用双引号并将此代码也用于MySQL,请通过设置正确的SQL模式告诉MySQL接受双引号作为对象标识符:ANSI_QUOTES