2013-08-29 3 views
1

내 응용 프로그램에서 지오 코더 gem을 사용하고 테스트를 실행할 때 Google에서 한도 쿼리 오류가 발생합니다. 따라서 테스트 환경에있을 때 사용하고 싶지 않습니다. 테스트 할 때 지오 코더 유틸리티를 사용하지 않기 위해 일부 페이지에 일부 정보가 표시되지 않도록하고 싶습니다.개발 또는 프로덕션 환경에서만 지오 코더 사용

나는 이것을 시도했지만 효과가 없었습니다. 도와 주실 수 있습니까?

응용 프로그램/모델/location.rb

after_validation :geocode, if: :address_changed? && (Rails.env.production? || Rails.env.development?) 

그리고

응용 프로그램/헬퍼/location.rb 응용 프로그램/뷰/제품/index.html.erb에 사용

if Rails.env.test? 
    t('location.distance.test') 
else 
    here.location.distance_to(there.location, :km) 
end 

NoMethodError: 
    undefined method `after_validation' for false:FalseClass 

을 그리고 내 도우미에서 모든 것을 내 모델에 다음 코드를 제거하면, 나는 더 이상 오류가 없다 : 모든 테스트에 대한 오류 메시지 다음 나는 실행합니다. 그런

&& (Rails.env.production? || Rails.env.development?) 
+0

어떤 식으로 작동하지 않았다? 오류가 있었습니까? 수표가 무시 되었습니까? – Shadwell

+0

방법이 알려지지 않았기 때문에 오류가 발생했습니다 (그에 따라 게시물을 편집했습니다). –

+0

Flo, 오류를 던지고있는 전체 코드를 게시 할 수 있습니까? -> 모델 (물론이 문제와 관련없는 메서드를 제거 할 수 있음) -> 실제로 오류가 발생하는 메서드 : 새 인스턴스를 저장하려고합니까? 감사합니다. – NicoArbogast

답변

2

쓰기를 :

unless Rails.env.test? 
    after_validation :geocode, if: :address_changed? 
end 
+0

와우 나는 이것이 내 테스트 스위트를 면도 한 시간이 얼마나되는지 믿을 수 없다. 감사. – stephenmurdoch