我有一个使用geokit的rails模型,其中包含调用acts_as_mappable :auto_geocode=>true
之类的行before_validation :geocode_address, :on => :create
。但是,我的问题是我的开发数据库有一个种子文件,它调用Rails模型,然后在create上调用它,调用外部API并在我没有连接到互联网时失败。我可以采用哪些方法?
如果这种方法同时涵盖了这种情况,并且当我运行我的测试时也会很好,但是我已经有了解决那些不太漂亮的测试的方法。
答案 0 :(得分: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)