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