로컬 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은
그래서, 여기에 몇 가지 예제 코드입니다 ... 아주 많이 내 코드를 같이하지 않는 것? 왜 '%%'?
배포 테스트를 위해 Exceptional 플러그인과 함께 Heroku를 사용하고 있습니다.
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 : 오류 : 부울 입력 유형이 잘못되었습니다 : "". 지금 뭐야? :/ –
@ulf : 새로운 SQL 문은 무엇입니까? –
새로운 문장은 다음과 같습니다 : "sporty =?" "away"를 남겨두면 응용 프로그램이 손상됩니다. –