知道是否已调用验证

时间:2014-02-18 17:31:06

标签: ruby-on-rails mongoid3

如何知道模型是否已经过验证?

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

我想防止对地理编码提出太多疑问。

1 个答案:

答案 0 :(得分:0)

如果您有before_validation :geocode回调,则可以通过以下方式改进geocode方法来缓存繁重的代码结果:

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

当lat_lon发生变化时,缓存为哈希值可以重做地理编码。