0
오늘 아침에 저는 postgresql로 전환했고 이제는 더 이상 작동하지 않습니다.Postgresql WHERE 절이 ''주위에 추가됩니까?
는PG::Error: ERROR: invalid input syntax for integer: "1,5,6"
LINE 1: SELECT "shirts".* FROM "shirts" WHERE (id in ('1,5,6'))
하지만 이것은 작동합니다 :
shirt_ids = "1,5,6" # String generated by javascript
Shirt.where("id in (?)", shirt_ids)
이 나에게 제공합니다
Shirt.where("id in (#{shirt_ids})")
그러나 모두가 알고있는 것처럼 안전하지 내가 뭘하려고 오전
슈퍼 간단합니다.
임 사용 :
pg (0.13.2 x86-mingw32)
rails (3.2.2)
PostgreSQL 데이터베이스가 최신 버전입니다, 오늘 아침에 그것을 설치.
도움 주셔서 감사합니다. ^
은 아마 당신의 빠른 도움말 : – KimJongIl
주셔서 감사를 조금 빨리 ... 나는 원래의 대답은 '작동'하지만 실제로는 하나의 객체 만 반환한다는 것을 깨달았다. 그에 따라 편집,이 하나는 잘되어야합니다. – MrTheWalrus
보다 정확하게 ActiveRecord는 SQL 스 니펫에'?'를, 값으로 String을보고, 그 Ruby String을 SQL 문자열 리터럴''1,2,3 ''로 변환합니다. 나는'shirt_ids.split (','). map (& : to_i)'이 더 안전하다고 생각한다. –