1

我在我的应用程序中使用地理编码器 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? )
4

1 回答 1

2

像这样写:

unless Rails.env.test?
  after_validation :geocode, if: :address_changed?
end
于 2013-09-05T22:18:54.287 回答