igmarin
6/24/2014 - 5:24 PM

doctor.rb

class Doctor < ActiveRecord::Base
  paginates_per 15

  self.table_name = 'doctors'
  extend FriendlyId
  friendly_id :nombre_completo, use: :slugged

  belongs_to :ciudad
  belongs_to :especialidad
  has_and_belongs_to_many :subespecialidades
  validates :cedula, :ciudad, :nombre, :direccion, presence: true
  validate :validate_cedula

  after_validation :geocode

  geocoded_by :direccion_completa

  default_scope ->{ order(:apellido_paterno)}

  def direccion_completa
    "#{direccion}, #{ciudad.nombre}, #{ciudad.estado.nombre}, MEX"
  end

  def validate_cedula
    cedula = Validacion.find_by_cedula(self.cedula)
    if cedula.nil?
      errors.add(:cedula, "Lo sentimos pero esta cedula no es valida")
    end
  end

  def nombre_completo
    [nombre, apellido_paterno, apellido_materno].join(' ')
  end

  mount_uploader :foto_principal, FotoPrincipalUploader
end