ActiveRecord モデルの after_save コールバックで一時属性が削除される
概要
Rails ActiveRecord クラスの after_save コールバック中に一時属性を使用するにはどうすればよいですか?
これが私が今やっていることです。
DB によってサポートされる複数の属性を持つモデル クラスがあります。 DBに保存されない一時的な属性を追加したいと考えています。
class Model < ActiveRecord::Base
after_save :after_save_callback_func
attr_accessor :a
def after_save_callback_func
puts self.a
end
def some_random_func
self.a = 'Hello World'
end
end
after_save コールバック中に一時属性 a に設定された値を使用したいのですが、一時属性が self オブジェクトに存在しなくなっていることがわかります。
解決策
上記のコメントで述べたように、このパターンはそのまま機能します。機能しなかったのは、単体テストの仕様ファイルにあるこれでした。