问题是我正在使用
def before_validation
self.author.strip!
self.author_email.strip!
end
我收到一条错误消息:
弃用警告:不推荐使用Base#before_validation,请改用Base.before_validation:方法。
有人能指出我正确的方向吗?感谢
答案 0 :(得分:9)
在您的班级模型的顶部某处放置清理方法的名称:
before_validation :remove_whitespace
...然后在模型类的下方放置一个具有相同名称的私有方法:
def remove_whitespace
self.author.strip!
self.author_email.strip!
end
或者,如果你想要一个单行,那么你也可以将lambda而不是方法名称传递给before_validation:
before_validation lambda {self.author.strip!; self.author_email.strip!}
答案 1 :(得分:1)
每个人 http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
尝试这样的事情。你可以调用before_validation并传递一个块而不是覆盖它。
before_validation() do
self.author.strip!
self.author_email.strip!
end