opr*_*ogo 33 ruby-on-rails ruby-on-rails-2
我正在尝试让我的自定义验证工作create.但是,当我做了find,然后save,轨道把它当作create和运行自定义验证.如何在仅在更新找到的记录时创建新记录时才能获得验证?
Ton*_*nys 71
您的问题标题指定了rails 2.3.11,但您的标记显示了rails 3.1.我将标题作为您需要的实际版本.
在您的验证码上尝试此操作:
validate :custom_validation, :on => :create
Run Code Online (Sandbox Code Playgroud)
这指定仅对操作运行验证create.这是apidocs的链接
class MyPerson < ActiveRecord::Base
validate :age_requirement
private
def age_requirement
unless self.age > 21
errors.add(:age, "must be at least 10 characters in length")
end
end
end
Run Code Online (Sandbox Code Playgroud)
要仅在创建新对象时运行验证器,可以将示例的第二行更改为: validate :age_requirement, on: :create
仅在更新时: validate :age_requirement, on: :update
希望对下一个人有帮助!
| 归档时间: |
|
| 查看次数: |
21526 次 |
| 最近记录: |