【发布时间】:2010-12-01 17:57:30
【问题描述】:
我的 Ruby on Rails 条件适用于 MySQL 但不适用于 PostGres
:conditions => ["A between ? and ? and B between ? and ? and C between ? and ? and ddd is ?",@amin,@amax,@bmin,@bmax,@cmin,@cmax,params[:input].to_s]
产生错误:
ActiveRecord::StatementInvalid (PGError: ERROR: syntax error at or near "E'word'"
LINE 1: ...c between -100 and 100 and ddd is E'word')
我知道没有最后一次比较它就可以工作。例如。
:conditions => ["A between ? and ? and B between ? and ? and C between ? and ?",@amin,@amax,@bmin,@bmax,@cmin,@cmax]
ddd 是 :string 类型,而 a、b 和 c 都是 :decimal。
在对 Postgresql 进行一些研究之后,似乎 E' 字符串是转义字符串 - 这对我没有帮助,因为我似乎无法纠正它。我不经常使用 Postgresql,所以如果有明显问题,我提前道歉。
我正在使用 heroku 进行托管,因此我无法更改任何 Postgresql 设置。无论如何,我更愿意真正了解问题所在以及如何解决它。
干杯, 斯图
【问题讨论】: