Método e atributo com o mesmo nome

8 views
Skip to first unread message

Paulo Patto

unread,
Feb 10, 2012, 1:51:58 PM2/10/12
to Lista Rails BR
Olá pessoal, é possível eu ter um atributo em uma classe (coluna do banco) com o nome x e ter um attributo na classe de modelo com o mesmo nome x e conseguir retornar o conteúdo do attributo x através do método x?

Complicado? Exemplo


class TA < ActiveRecord:Basse
  # tenho no banco um atributo chamado foo
  def foo
    # quero aqui retornar o valor do atributo foo que vem da tabela foo de tas
  end
end

--
Paulo Patto
"Se em vez de enchermos o bolso enchermos a cabeça, não seremos roubados"

Stephen Eilert

unread,
Feb 10, 2012, 2:02:48 PM2/10/12
to rail...@googlegroups.com
Documentação.


Olhe em: "Overwriting default accessors"


-- Stephen

"Kids these days.
Whatever happened to hard work?"

       -- Joel Spolsky, The perils of javaschools



2012/2/10 Paulo Patto <paulo...@gmail.com>

--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+u...@googlegroups.com
Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: http://goo.gl/YGgt7

Paulo Patto

unread,
Feb 10, 2012, 2:06:01 PM2/10/12
to rail...@googlegroups.com
Obrigado Stephen! Foi de grande ajuda, a resposta estava o tempo todo na minha cara.

2012/2/10 Stephen Eilert <sped...@gmail.com>
Overwriting default accessors

Tiago Garcia

unread,
Feb 10, 2012, 2:31:02 PM2/10/12
to rail...@googlegroups.com
cade a resposta? posta ai, o resumo. :)

Paulo Patto

unread,
Feb 10, 2012, 2:41:12 PM2/10/12
to rail...@googlegroups.com
Para o meu exemplo:


class TA < ActiveRecord:Basse
  # tenho no banco um atributo chamado foo
  def foo
    read_attribute :foo
  end
  def foo=(val)
    write_attribute :foo, val
  end
end


Era isso que vc queria Tiago?

2012/2/10 Tiago Garcia <tiag...@gmail.com>

Tiago Garcia

unread,
Feb 10, 2012, 3:07:09 PM2/10/12
to rail...@googlegroups.com
achei que fosse assim.

def foo
  self.foo
end

mas isso tambem responde a como retornar o valor do campo.

Paulo Patto

unread,
Feb 10, 2012, 3:10:12 PM2/10/12
to rail...@googlegroups.com
acho que se usar self ele usa o nome do método do espaço de nomes.


Não testei


2012/2/10 Tiago Garcia <tiag...@gmail.com>

Paulo Patto

unread,
Feb 10, 2012, 3:11:17 PM2/10/12
to rail...@googlegroups.com
A dica do Stephen foi exata!

2012/2/10 Paulo Patto <paulo...@gmail.com>
Reply all
Reply to author
Forward
0 new messages