說我有一個模型,其中我可能需要在保存前操縱它的一些屬性:before_validation上:保存VS before_save
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?
時不必要的運行回調。
任何強烈的意見?
- 不。沒關係。只要做一些讓你感覺更好的事情。 – 2013-04-30 09:52:45