rails的before_validation问题

Xcl*_*ive 1 ruby-on-rails-3

问题是我正在使用

def before_validation
  self.author.strip!
  self.author_email.strip!
end
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

弃用警告:不推荐使用Base#before_validation,请改用Base.before_validation:方法.

有人能指出我正确的方向.谢谢

Sco*_*ott 9

在您的类模型顶部的某处放置清理方法的名称:

before_validation :remove_whitespace
Run Code Online (Sandbox Code Playgroud)

...然后在模型类的下方放置一个具有相同名称的私有方法:

def remove_whitespace
  self.author.strip!
  self.author_email.strip!
end
Run Code Online (Sandbox Code Playgroud)

或者,如果你想要一个单行,那么你也可以将lambda而不是方法名称传递给before_validation:

before_validation lambda {self.author.strip!; self.author_email.strip!}
Run Code Online (Sandbox Code Playgroud)