내 사용자 모델에는 다음과 같은 문자가 있습니다 :heroku에서 validates_uniqueness_of가 실패 했습니까?
validates_uniqueness_of : fb_uid (facebook connect를 사용하고 있습니다).
그러나 사용자 가입시 중복 행이 나타납니다. 이건 정말 나빠.
두 레코드의 생성 시간은 100ms 내에 있습니다. 나는 그것이 두 개의 분리 요청에서 발생하는지 아닌지를 결정할 수 없었습니다 (heroku 로깅은 실패하고 단지 지금까지만 돌아 왔고 두 번만 발생했습니다).
두 가지 : 나는 이름 정보, 친구, 사진에 대한 FB API를 쿼리 때문에
- 때때로 요청은 약간의 시간이 소요됩니다.
- 저는 bigint를 사용하여 fb_uid를 저장하고 있습니다 (백엔드는 포스트 그레스입니다).
dev에 복제 할 수 없었습니다.
모든 아이디어는 극명하게 평가 될 것입니다.
def self.create_from_cookie(fb_cookie, remote_ip = nil)
return nil unless fb_cookie
return nil unless fb_hash = authenticate_cookie(fb_cookie)
uid = fb_hash["uid"].join.to_i
#Make user and set data
fb_user = FacebookUser.new
fb_user.fb_uid = uid
fb_user.fb_authorized = true
fb_user.email_confirmed = true
fb_user.creation_ip = remote_ip
fb_name_data, fb_friends_data, fb_photo_data, fb_photo_ext = fb_user.query_data(fb_hash)
return nil unless fb_name_data
fb_user.set_name(fb_name_data)
fb_user.set_photo(fb_photo_data, fb_photo_ext)
#Save user and friends to the db
return nil unless fb_user.save
fb_user.set_friends(fb_friends_data)
return fb_user
end
가입 기능을 게시 할 수 있습니까? – Spyros
은 (는) 질문에 게시했습니다 – Brian