Sha256: b41b04a3cc87f782989ab22295cbca24ea475895b1b3df45cc8a9b8de498bc15
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
class Persona::Person < Persona::Model extend EnumerateIt self.abstract_class = true has_enumeration_for :personable_type, create_helpers: true, create_scopes: true has_paper_trail belongs_to :personable, polymorphic: true, autosave: true has_one :address, -> { where(correspondence: false) }, as: :addressable, class_name: '::Address', dependent: :destroy has_one :correspondence_address, -> { where(correspondence: true) }, as: :addressable, class_name: '::Address', dependent: :destroy accepts_nested_attributes_for :address, reject_if: :all_blank accepts_nested_attributes_for :correspondence_address, reject_if: :all_blank before_save :set_cpf_cnpj before_save :normalize_name! validates :name, :personable, presence: true validates :personable, associated: true, allow_blank: true validates :email, mail: true, allow_blank: true validates :phone, :fax, mask: '(99) 9999-9999', allow_blank: true validates :mobile, mask: '(99) 99999-9999', allow_blank: true def cpf personable.cpf if personable.respond_to?(:cpf) end def cnpj personable.cnpj if personable.respond_to?(:cnpj) end def state_registration personable.state_registration if personable.respond_to?(:state_registration) end def responsible personable.responsible if personable.respond_to?(:responsible) end def to_s name end private def set_cpf_cnpj self.cpf_cnpj = personable.respond_to?(:cpf) ? cpf : cnpj end def normalize_name! return unless name self.normalized_name = I18n.transliterate(name).downcase end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
unico-training-7.8.0 | app/models/persona/person.rb |