Relacionamento com campos diferentes de id

Pessoal estou tentando fazer um relacionamento com os seguintes campos:

TABELA PESSOA
cpf --> RELACIONAR
nome
data

TABELA DIVIDA
id
descricacao
pessoa_cpf --> RELACIONAR

VIsto que não se trata de um campo ID tentei fazer da seguinte forma, porém, não funcionou:

class Divida < ActiveRecord::Base

belongs_to :pessoa , :foreign_key => ‘cpf’

end

class Pessoa < ActiveRecord::Base

has_many :dividas

end

Tô querendo através da busca que meu controller faz poder exibir na view da seguinte forma:

divida.pessoa.nome

QUem puder me dar uma luaz agradeço muito! :slight_smile:

valew!

Paulo Roberto

My Portuguese is not that good. But if I understand correctly...

Paulo Silva wrote:

Pessoal estou tentando fazer um relacionamento com os seguintes campos:

TABELA PESSOA
cpf --> RELACIONAR
nome
data

TABELA DIVIDA
id
descricacao
pessoa_cpf --> RELACIONAR

VIsto que não se trata de um campo ID tentei fazer da seguinte forma,
porém,
não funcionou:

class Divida < ActiveRecord::Base

belongs_to :pessoa , :foreign_key => 'cpf'

Right, that won't work, because :foreign_key should name the foreign key
field in *this* table, so it should be pessoa_cpf. You'll also need to
do
class Pessoa
  set_primary_key :cpf
end

end

class Pessoa < ActiveRecord::Base

has_many :dividas

end

Tô querendo através da busca que meu controller faz poder exibir na view
da
seguinte forma:

divida.pessoa.nome

QUem puder me dar uma luaz agradeço muito! :slight_smile:

valew!

Paulo Roberto

I think what I suggested should work. Boa sorte!

Best,

I having test using set_primary_key, but print message error:

a.pessoa.nome
NoMethodError: You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.nome

Paulo:
Vc tem mais código no controlador ? E qual sería o código da vista ?
Este erro que vc informa agora, acho que nao tem a ver com a definiçao das clases, indicada na resposta de Marnen
Esse erro pode ser que o objeto a nao tem valor (Object nil) entao nao pode ser achado pessoa.nome.
Vc pode ver se este erro é do controlador ou da vista desde a consola do servidor Rails ou bem utilizando o Firebug que é uma otima ferramenta do Firefox para vc ver o HTML gerado, javascript, CSS etc…
Boa sorte,
FF