Sha256: 0372705d8fe7053b6ee022f276c3ec6c0806e215bb3816fcc49e078114cbfd85
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
class City include Mongoid::Document include Mongoid::Geospatial # include GeoHelper field :slug field :name field :area field :gid, type: Integer field :zip, type: Integer field :souls, type: Integer field :geom, type: Point, spatial: true # index [[ :geom, Mongo::GEO2D ]], min: 200, max: 200 index :slug spatial_index :geom belongs_to :province belongs_to :country, index: true has_many :hoods before_validation :set_defaults validates :name, :country, presence: true validates_uniqueness_of :name, :scope => :province_id index [[:name, 1]] scope :ordered, order_by(:name, 1) def abbr province ? province.abbr : country.abbr end def set_defaults self.country ||= province.try(:country) self.slug ||= name.try(:downcase) # don't use slugize end def self.search(search, page) cities = search ? where(:field => /#{search}/i) : all cities.page(page) end def self.drop_down ordered.map{|c| [c.name, c.id]} end def <=> other self.name <=> other.name end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
geopolitical-0.0.1 | app/models/city.rb |