使用geocoding.rb拼接Gmaps4rails

时间:2012-11-06 16:27:54

标签: ruby-on-rails ruby-on-rails-3 rspec rspec-rails gmaps4rails

我已经回顾了一些Gmaps4rails存根问题并认为我非常接近,但并不完全存在。请原谅我:在铁轨中捣乱和嘲笑非常新。

所有这些代码都适用于现实世界,只是试图让它在测试期间跳过地理编码。现在测试有时工作,有时失败, Gmaps4rails地址无效错误

所以,我有一个非常简单的party.rb模型,其中acts_as_gmappable:

def gmaps4rails_address
   "#{self.city}, #{self.country}" 
end 

我已经从github粘贴geocoding.rb并将其放在/ spec / support中未经修改

但是,我似乎无法告诉我的parties_controller_spec使用存根而不是真实存根。我确定我错过了一些简单的东西......我试过了:

include Geocoding

甚至

Gmaps4rails.set_gmaps4rails_options!({:msg => "quack"})

并且我没有看到“嘎嘎”作为错误消息,我看到验证失败:Gmaps4rails地址无效

也尝试过:

Gmaps4rails.set_gmaps4rails_options!({:validation => false, :check_process => false, :process_geocoding => false})

但没有效果。

我的个工厂.rb很简单:派对定义:

Factory.define :party do |party|
party.name      "Thai New Year"
party.city      "Phuket"
party.country   "Thailand"
...
end

所以,我很确定我没有正确地告诉rspec使用存根的Gmaps4rails。那么,我究竟应该把代码告诉Gmaps4rails使用你的stub_geocoding方法而不是实际尝试执行地理编码呢?

如果这是一个平凡的问题,我们将不胜感激。

戴夫

1 个答案:

答案 0 :(得分:4)

如果您不想要任何地理编码,请执行此操作:

Factory.define :party do |party|
  party.name      "Thai New Year"
  party.city      "Phuket"
  party.country   "Thailand"
  party.gmaps     true #<= this is what tells the gem not to fire geocoding
  party.latitude  whatever_if_relevant
  party.longitude whatever_if_relevant
  ...
end