我在我的应用中使用了地理编码器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? )
答案 0 :(得分:2)
这样写:
unless Rails.env.test?
after_validation :geocode, if: :address_changed?
end