0
Model.find_by_column(column_data)
을 반환하면 Nil
입니다. 그러나 생성 된 SQL을 rails db
콘솔 (postgresql db shell)에 복사하면 레코드가 나타납니다.레일스 find_by는 nil을 반환하지만 레코드는 존재합니다.
누구든지 무엇이 잘못 될 수 있는지 알고 계십니까?
예제 코드 :
garden = Garden.find_by_name("Zen Garden")
puts garden.inspect
결과 :
SELECT "gardens".* FROM "gardens" WHERE "gardens"."name" = 'Zen Garden' LIMIT 1
Nil
그러나 데이터베이스에
하기 :SELECT "gardens".* FROM "gardens" WHERE "gardens"."name" = 'Zen Garden' LIMIT 1;
id | name | created_at | updated_at
----+------------+----------------------------+----------------------------
82 | Zen Garden | 2014-10-23 03:56:25.614274 | 2014-10-23 03:56:25.614274
무엇 가능성이 잘못 될 수 있을까?
레일즈 콘솔에서 Garden.find_by를 실행 중이라고 가정합니까? 내가 묻는 이유는 두 환경에서 환경이 동일한 지 궁금해하기 때문입니다. – stefvhuynh
이 옵션을 그냥 버리려면 Garden.where ('name LIKE?', '% Zen Garden %')를 사용해보십시오. 어쩌면 이름 끝에 또는 시작 부분에 공백이있을 수 있습니다. 어떤 버전의 레일즈를 사용하고 있습니까? –