“Foi suja” plugin para ActiveRecord?
-
19-09-2019 - |
Pergunta
Eu estou trabalhando em algum código que usa um monte de after_save retornos de chamada, e eu lembro de ter visto um plugin que permite que a matriz model.changes
a persistir após uma chamada para save
.
Seria uma grande ajuda se eu pudesse apenas if body_did_change?
escrever no meu chamadas after_save
, em vez de ter que cortar juntos algo com um filtro before_save
apenas para definir um sinalizador.
Eu escrevi algo como isto me antes, mas eu prefiro usar algo apoiado e eu juro que eu vi este plugin antes.
Solução
Eu acredito que é built-in agora - uma característica recente. Tenho vindo a usá-lo em meu projeto .. Veja http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects
Outras dicas
Way final da sua resposta aqui, mas estava procurando a mesma coisa me ...
Rails 3 suporta o seguinte:
person.name # => 'bob'
person.name = 'robert'
person.save
person.previous_changes # => {'name' => ['bob, 'robert']}
Veja aqui: http://edgeapi.rubyonrails.org/classes/ActiveModel/Dirty .html
Felicidades