说我有一个模型,其中我可能需要在保存前操纵它的一些属性: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