2011-12-04 4 views
5

기본적으로 데이터베이스에 오브젝트가 있는지를 확인하기 위해 레일즈에서 찾기를 원합니다. CSV 형식을 약간 제어 할 수있는 CSV가 있습니다. 저는 CSV에 'name'이라는 필드가 있습니다.이 필드에는 5 단어가 들어 있습니다. 이 필드는 이름과 주소를 포함하지만 어떤 형식으로도 제한되지 않습니다.레일스는 문자열의 일부로 찾습니다.

내 데이터베이스에는 '이름', '주소 1', '주소 2'와 같은 필드가 있습니다. 기본적으로 CSV의 이름 입력란 중 일부가 내 데이터베이스의 입력란과 일치하는지 확인하고 싶습니다.

나는 SQL과 같은 명령어를 사용해야 할 것 같은데, 어떻게해야할지 모르겠다.

답변

24

당신은 LIKE를 사용하여 수행 할 수 있습니다

User.where('name LIKE ?', "%#{@user.name}%") 

구문을 LIKE SQL 문에 대한 지정된 문자열 조각에 대한 필드를 찾으려면 결과 SQL은 볼 것이다, 그래서 % 문자와 문자열 조각을 포위하는 것입니다 이 같은 것

"SELECT \"users\".* FROM \"users\" WHERE (name LIKE '%Rob Phillips%')" 
관련 문제