Files

25 lines
710 B
Ruby

class Position < ActiveRecord::Base
validates :postal_code, presence: true
validate :geocoder_position_present
before_create :set_location_name
def set_location_name
state = geocoder_position.state || geocoder_position.province
self.location_name = [geocoder_position.city, state, geocoder_position.country].compact.join(", ")
self.latitude = geocoder_position.latitude
self.longitude = geocoder_position.longitude
end
protected
def geocoder_position_present
errors.add(:postal_code, "No coordinates found for postal_code #{postal_code}}") if geocoder_position.blank?
end
def geocoder_position
@geocoder_position ||= Geocoder.search(postal_code).first
end
end