需要Geocoder结果才能保存

时间:2015-03-02 08:52:08

标签: ruby-on-rails ruby-on-rails-4 rails-geocoder

我使用Geocoder获取地址的纬度和经度。这是模特:

class Location < ActiveRecord::Base
  has_many :offers


  # Validation
  validates :name, :address, :postcode, :presence => true

  # Geocoding
  geocoded_by :full_address
  after_validation :geocode

  # Methods
  def full_address
    [address, "London", postcode].compact.join(', ')
  end
end

如果没有纬度和经度,记录就没用了,所以除非地理编码成功,否则我需要阻止它保存。

我尝试为地址添加一些验证,但地址可以有效而不是可地理编码(例如伦敦123 Fake Street)。我还尝试添加纬度和经度的验证,但因为地理编码发生在验证之后也没有。

澄清一点:我理想地希望保持地理编码after_validation,以便我不必为不相关的错误调用地理编码。例如,模型上的name属性是必需的,如果空白则尝试进行地理编码是没有意义的。

0 个答案:

没有答案