-2
모델의 유효성을 이미 확인했는지 확인하는 방법?유효성 검사가 이미 호출되었는지 확인
u = User.new
u.name = "Ralph"
u.valid? # => true
u.validated? # => false
너무 많은 지오 코딩을 방지하고 싶습니다. 당신이 before_validation :geocode
콜백이있는 경우
모델의 유효성을 이미 확인했는지 확인하는 방법?유효성 검사가 이미 호출되었는지 확인
u = User.new
u.name = "Ralph"
u.valid? # => true
u.validated? # => false
너무 많은 지오 코딩을 방지하고 싶습니다. 당신이 before_validation :geocode
콜백이있는 경우
당신은 무거운 코드 결과이 방법을 캐시하기 위해 geocode
방법을 향상시킬 수 해시 값으로
def geocode
@geocode_results ||= {}
# suppose geocoding depends on `lat_lon` attribute
@geocode_results[lat_lon] ||= begin
# Your heavy code here
end
end
캐싱 변경 사항을 lat_lon 때 지오 코딩을 다시 할 수 있습니다.
어떤 문맥에서 건너 뛰시겠습니까? 건너 뛴다는 것은 무엇을 의미합니까? 너는 무엇을 지오 코딩하고 있는가? 'user.rb'를 게시 할 수 있습니까? – OneChillDude
'u.save'를 실행하면 유효성 검사를 한 번만하고, 유효하지 않으면'false'를 반환합니다. –
마이너스 3은 무겁다 ... 나는이 모델이 이미 "검증 된"것인지 알고 싶다. 유효성 검사 프로세스를 다시 시작해서는 안됩니다. 예를 들어,'''before_validation : geocode'''는 모델이 유효화 될 때마다 히트 될 것입니다. 하지만 내 Google 검색 파견을 저장하기 위해 한 번만 실행하고 싶습니다. 그래서 나는 "유효성이 입증 된 것"이라고 생각했다. 메서드를 사용하여 유효성 검사 프로세스가 이미 완료되었는지 확인합니다. 나는 그것이 지금 더 분명하기를 바란다. – Jan