ActiveRecord::Baseを継承したクラスの中で、before_save, after_saveなどを書くと、保存前や保存後に呼び出されるメソッドを指定できる。しかし、これらのコールバックの中で例えばsaveメソッドを実行してしまうと、stack level too deep (SystemStackError)
というようなエラーが起きてしまう。
参考にしたのは以下のページ:
ruby on rails – Skipping callbacks and validation – Stack Overflow
以下のドキュメントにリストアップされているメソッドは、こういったコールバックを呼び出さずにスキップして、updateをかけることができる。
http://guides.rubyonrails.org/active_record_validations_callbacks.html#skipping-callbacks
以下、引用。
decrement
decrement_counter
delete
delete_all
find_by_sql
increment
increment_counter
toggle
touch
update_column
update_all
update_counters