Fork me on GitHub

Keep Learning Conhecimento nunca é o bastante

Postado em
1 November 2007 @ 9:49

Tag(s)
Dicas, Rails

Rails – Desabilitando as "colunas mágicas" relacionadas a timestamps

As “colunas mágicas” do Rails são aquelas automaticamente gerenciadas pelo framework, como created_at e updated_at no caso de timestamps. Essa funcionalidade é muito útil, mas às vezes precisamos desativá-la.

Um caso como esse ocorreu comigo: possuo uma tabela com uma coluna chamada last_viewed_at, à qual gerencio manualmente atualizando a data sempre que um registro é visualizado pelo usuário para efeito de pesquisas e estatísticas no sistema. Como nessa mesma tabela há as colunas mágicas, o Rails atualizava a coluna update_at toda vez que eu fazia a alteração mencionada acima. Para mim isso não era interessante: essa coluna só deveria ser atualizada quando houvesse alteração feita pelo usuário.

A solução que encontrei foi desabilitar as o gerenciamento automático dos timestamps, fazer a alteração e então habilitar a funcionalidade novamente, desta forma:

ActiveRecord::Base.record_timestamps = false
# alteração no registro
ActiveRecord::Base.record_timestamps = true

Obs: vale lembrar que isso vale apenas para as colunas mágicas relacionadas à timestamps. Existem outras como type, id e lock_version, entre outras.

Se alguém souber de uma forma melhor para conseguir esse comportamento, escreva nos comentários.


Nenhum comentário até agora


Nenhum comentário ainda. Você pode ser o primeiro!

Deixe um comentário