У меня есть условие 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 все: десятичные.
После некоторого исследования Postgresql кажется, что строки E '- это экранированные строки - это мне не помогает, так как я не могу исправить это. Я не часто работаю с Postgresql, поэтому заранее прошу прощения, если это что-то очевидно.
Я использую heroku для хостинга, поэтому не могу изменить какие-либо настройки Postgresql. Во всяком случае, я бы предпочел по-настоящему понять, в чем проблема и как ее исправить.
Cheers,
Stu