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