保存する前に属性の一部を操作する必要があるモデルがあるとします。
class User < ActiveRecord::Base
attr_accessible :name, :email
# before_validation :set_name_from_email, on: :save
# OR
# before_save :set_name_from_email
def set_name_from_email
self.name ||= email
end
end
私がしなければならなかったvalidates :name, presence: true
場合、もちろん、これはbefore_validation
. しかし、(現在のコードでは) コールバックがオブジェクトの有効性に影響を与える可能性がない場合は、それを に入れる方がよいbefore_save
でしょうか?
コードが変更され、コールバックが有効性に影響を与える可能性がある場合に備えて、いずれかのバケットでコールバックを操作するすべてのデータを保持する方が適切に見えますが、.valid?
.
どちらにしても有力な意見はありますか?