■ [rails] Rails で callback を実行したくない時のアレ Rails で特定の条件では callback を実行したくない時は ActiveSupport::Callbacks::ClassMethods の skip_callback を使う。ドキュメントに書いてある例以外にも User の中の特定のメソッドの中、具体的には自分自身を複製するような処理で callback を除外したい時は User.skip_callback :validate, :before, :validate_methods と書けばよい。ただ、上記のように if を抜くと、skip と言いつつ実際には remove と同様の動きになって callback が常に消えてしまう。なので、実際に使う時は User.skip_callback :validate, :before, :valid
![[rails] Rails で callback を実行したくない時のアレ - HsbtDiary(2012-06-07)](https://cdn-ak-scissors.b.st-hatena.com/image/square/8cab6183abe73ade0ce0a24c302ac36ee5c17b43/height=288;version=1;width=512/https%3A%2F%2Fwww.hsbt.org%2Fdiary%2Ftheme%2Fogimage.png)