Rails验证,如果条件和操作同时进行

时间:2013-11-02 18:32:59

标签: ruby-on-rails ruby-on-rails-3

在我的模型中,我需要使用if条件和操作名称(仅更新)进行验证。应该是这样的:

validates email, :presence => {with:true}, :if => condition || :on => :update

但它给了我一个语法错误。我使用rails 3.2.11和ruby 1.9.3。请帮忙!

1 个答案:

答案 0 :(得分:0)

您可以使用Rails Custom Validators

validates_with CustomValidator, :on => :create

并有一个单独的CustomValidator类

class CustomValidator < ActiveModel::Validator
  def validate(record)
    if condition
      record.email.present?
    end
  end
end