0

acts_as_mappable :auto_geocode=>trueのようなものを呼び出す行を含むgeokitを使用するrailsモデルがあります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 に答える