2011-11-27 2 views
0

나는 레일에 Statistics이라는 모델을 가지고 있으며 누군가 내 페이지를 방문 할 때마다 모델에 IP를 기록하고 저장합니다.레일 및 ActiveRecord - IP로 행 찾기 아무 것도 반환하지 않음

Statistics(id: integer, ip: string, ...); 

예 레코드 반환은 다음과 같습니다 : 이것은 내 모델은 현재 모습입니다

#<Statistics id: 700, ip: "10.0.2.2", ...> 

을하지만 레일 콘솔을 입력하고 레코드를 찾을 때 :

ruby-1.9.2-p290 :175 > Statistics.find_all_by_ip("10.0.2.2") 
Statistics Load (0.8ms) SELECT "statistics".* FROM "statistics" WHERE "statistics"."ip" = '10.0.2.2' 
=> [] 

나는 항상 빈 반환을 얻는다 ..

내가 모르는 IP 주소를위한 레일스의 어떤 단점 ? 나는 이것이 왜 효과가 없는지를 알아낼 수 없다.

+0

당신이 전화하는거야 어떤 이유로'대신'find_by_ip'의 find_all_by_ip'? – Andrew

+0

오, 죄송합니다. 그것은 내 코드의 일부 잔해 였지만, 어떤 식 으로든, find_by_ip와 find_all_by_ip는 모두 nil을 반환합니다. – Kevin

답변

1

내가 처음 가정 할 때 IP 주소는 Addrinfo의 값을 사용하여 저장되지만 SQLite는 UTF를 사용합니다. 이것은 당신이 언급하지 않는 SQLite를 사용한다고 가정합니다.

See my previous answer I gave covering this in some detail.

+0

그랬어! 나는'request.ip'을 사용하여 그것을 데이터베이스에 직접 저장하고있었습니다. 그리고 당신은 맞습니다, 나는 SQLite를 사용하고있었습니다. 정말 고마워! – Kevin

관련 문제