本地我正在用SQLite開發,但在我的生產主機上運行的是PostgreSQL。本地一切都很好,但不是生產主機。PGError:錯誤:運算符不存在:布爾值~~ *未知
我建立了一種搜索表單,我可以用我想要的任意組合來評估數據庫中的所有數據。這似乎工作正常,只要我不使用布爾和/或日期字段。 PostgreSQL的似乎不喜歡我的代碼非常...
所以,這裏的一些示例代碼:
unless params[:analysis][:sporty].blank?
tmp_conditions_customer << ["(sporty ILIKE ?)", "%#{params[:analysis][:sporty]}%"]
end
這個計算結果爲
SELECT COUNT(*) FROM "customers" WHERE ((sporty ILIKE '%%')
爲什麼這麼呢?爲什麼 '%%'?
爲了測試部署,我使用Heroku和Exceptional插件。這個插件給我下面的提示:
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
由於出色的,但是這到底是什麼意思呢? :D類型轉換爲SQL查詢?那該怎麼辦?
在我的移民數據庫中的字段如下所示:
t.boolean :sporty
而且在形式,其中我創建這個數據我使用這個代碼
<%= f.label :sporty %><br />
<%= f.select :sporty, options_for_select({ "Ja" => true, "Nein" => false }), { :include_blank => '-----'} %>
正如我已經提到, SQLite是我的朋友,似乎是造成麻煩的PostgreSQL更嚴格的評估。
感謝您的幫助提前。
謝謝您的回答:-)。我相應地修改了我的查詢。但現在我得到這個錯誤:PGError:錯誤:無效的輸入語法類型布爾:「」。現在怎麼辦? : -/ – 2011-01-20 14:52:23