0

我有一个使用 geokit 的 rails 模型,其中包括acts_as_mappable :auto_geocode=>true调用类似before_validation :geocode_address, :on => :create. 但是,我的问题是我的开发数据库有一个种子文件,它调用 Rails 模型,然后在创建时调用它,它调用外部 API 并在我没有连接到互联网时失败。我可以使用哪些方法?

如果该方法同时涵盖了这种情况以及当我运行我的测试时,那就太好了,但是我已经为那些不是很漂亮的测试解决了问题。

4

1 回答 1

1

你可以尝试这样的事情:

# /db/seeds.rb

ModelName.class_eval { acts_as_mappable(:auto_geocode => false) }

# Create seed models...

ModelName.class_eval { acts_as_mappable(:auto_geocode => true) }

这甚至可能有效,

ModelName.acts_as_mappable(:auto_geocode => false)

编辑:

另一种解决方案是skip_callback方法:

ModelName.skip_callback(:validation, :before, :auto_geocode_address)
于 2013-03-13T20:12:06.483 回答