質問

How to know if a model was already validated?

u = User.new
u.name = "Ralph"
u.valid? # => true
u.validated? # => false

I want to prevent too much queries on geocoding.

役に立ちましたか?

解決

If you have before_validation :geocode callback you can improve your geocode method to cache heavy code results this way:

def geocode
  @geocode_results ||= {}
  # suppose geocoding depends on `lat_lon` attribute
  @geocode_results[lat_lon] ||= begin
    # Your heavy code here
  end
end

Caching as hash value lets redo geocoding when lat_lon changes.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top