Skip to content
This repository has been archived by the owner on Mar 11, 2019. It is now read-only.

usar_como_cpf com conditional #45

Open
izidorome opened this issue Aug 27, 2012 · 3 comments
Open

usar_como_cpf com conditional #45

izidorome opened this issue Aug 27, 2012 · 3 comments

Comments

@izidorome
Copy link

Estou tentando fazer isso:

class Usuario < ActiveRecord::Base
usar_como_cpf :documento, :if => :eh_pessoa_fisica?

def eh_pessoa_fisica?
tipo_pessoa == 1
end
end

Isso esta me gerando o seguinte erro:

undefined method `options' for #Class:0x00000006cd0a18

Stack Trace:
activerecord (3.2.3) lib/active_record/dynamic_matchers.rb:50:in method_missing' brcpfcnpj (3.1.0) lib/brcpfcnpj/cpf_cnpj_activerecord.rb:31:inrescue in add_composed_class'
brcpfcnpj (3.1.0) lib/brcpfcnpj/cpf_cnpj_activerecord.rb:28:in add_composed_class' brcpfcnpj (3.1.0) lib/brcpfcnpj/cpf_cnpj_activerecord.rb:18:inblock in init'
brcpfcnpj (3.1.0) lib/brcpfcnpj/cpf_cnpj_activerecord.rb:17:in each' brcpfcnpj (3.1.0) lib/brcpfcnpj/cpf_cnpj_activerecord.rb:17:ininit'
brcpfcnpj (3.1.0) lib/brcpfcnpj/cpf_cnpj_activerecord.rb:8:in `usar_como_cpf'

@jonduarte
Copy link

@rizidoro ao invés de usar o helper da gem. Você pode usar os custom validators fornecidos por ela.
Exemplo:

validates :document, cpf: true, if: :eh_pessoa_fisica?
validates :document, cnpj: true, unless: :eh_pessoa_fisica?

def eh_pessoa_fisica?
  tipo_pessoa == 1
end

@heber28
Copy link

heber28 commented Mar 7, 2013

por que não fazer assim:
se o cpf estiver preenchido então é pessoa fisica
se o cnpj estiver preenchido é pessoa juridica
e colocar uma validação para tornar obrigatorio o preenchimento de um dos dois.

@jonduarte
Copy link

@heber28 acho que no caso do @rizidoro ele está usando o mesmo campo documento para cpf ou cnpj.
Se entendi bem, a idéia é que o model Usuario pode ser tanto uma empresa, como uma pessoa.
Logo, o campo documento ora é um CPF ora um CNPJ.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants