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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top