2014-09-09 3 views
0

레일 2 프로젝트에서 작업 중입니다. find_by_ *를 사용하여 태그 테이블에서 레코드를 가져 오려고합니다. 그것의 다른 결과를 제공합니다.레일 find_by_name 결과가 잘못됨

이것이 왜 이렇게 작동하는지 알 수 있습니까? 내 모델에서

: 로그인

existing = user.tags.find_by_name(tag) 

:

SELECT * FROM `tags` WHERE (`tags`.`name` = 'Ror') AND (`tags`.user_id = 1) LIMIT 1 

RuntimeError (#<Tag id: 980191043, user_id: 1, name: "rOr", created_at: "2014-09-09 12:18:55", updated_at: "2014-09-09 12:18:55">): 

답변

1

당신이 MySQL을 사용하고 있습니까?

그렇다면 대소 문자를 구분하지 않는 비교를 수행하고있는 것 같습니다. MySQL이 대소 문자를 구분하는지 여부는 열의 필드 데이터 정렬을 기반으로합니다 : http://dev.mysql.com/doc/refman/5.0/en/charset-column.html

+0

그렇습니다. MYSQL을 사용하고 있습니다. 그렇다면 내 쿼리에 대한 해결책은 무엇입니까? –

+0

열의 데이터 정렬을 변경하거나 이진 비교를 사용할 수 있습니다. http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html – DanSingerman

관련 문제