仅在开发或生产环境中使用地理编码器

时间:2013-08-29 09:02:32

标签: ruby-on-rails rails-geocoder test-environments

我在我的应用中使用了地理编码器gem,当我运行测试时,我遇到了来自Google的限制查询错误。因此,当我在测试环境中时,我不想使用它,并且我希望我的一些页面在测试时不显示某些信息,以便不使用地理编码器实用程序。

我试过这个但是没用,你能帮帮我吗?

应用/模型/ location.rb

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

app / views / products / index.html.erb

中使用的

app / helpers / location.rb

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? )

1 个答案:

答案 0 :(得分:2)

这样写:

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