ローカル私はSQLiteで開発していますが、私のプロダクションホストではPostgreSQLを実行しています。ローカルではすべてが正常ですが、運用ホストでは問題ありません。PGError:ERROR:演算子が存在しません:ブール値~~ *未知数
私は、私が望む任意の組み合わせでデータベースのすべてのデータを評価できる検索フォームの種類を作りました。これは、私がブール値フィールドや日付フィールドを使用しない限り正常に動作しているようです。なぜ、とにかくことをだ
unless params[:analysis][:sporty].blank?
tmp_conditions_customer << ["(sporty ILIKE ?)", "%#{params[:analysis][:sporty]}%"]
end
これは
SELECT COUNT(*) FROM "customers" WHERE ((sporty ILIKE '%%')
に評価:PostgreSQLは
ので、ここでいくつかのサンプルコードがあります...非常に私のコードを好きに思えないのですか?なぜ '%%'?
デプロイメントをテストするために、私は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:エラー:タイプbooleanの入力構文が無効です: ""。今何? :/ –
@ulf:新しいSQL文とは何ですか? –
新しいステートメントは次のようになります: "sporty =?" "away"を放置するとアプリケーションがクラッシュする。 –