代码之家  ›  专栏  ›  技术社区  ›  Peter

Ruby on Rails:当上下文未给定值时进行验证

  •  1
  • Peter  · 技术社区  · 7 年前

    我通过传递上下文更新记录:

    employee.attributes = employee_params
    employee.save(context: :age_related_fields)
    

    我知道,在模型中,我只能有条件地对给定的上下文应用验证

    validates :date_of_birth, on: :age_related_fields
    

    但是有没有一种方法可以在句子中使用否定呢 :on 条件

    验证 date_of_birth 当上下文不一致时 :personal_fields .

    0 回复  |  直到 7 年前
        1
  •  3
  •   Siim Liiser    6 年前

    在rails上有一个被拒绝的pull请求,用于您正在寻找的内容。

    https://github.com/rails/rails/pull/30710

    不过,同样的任务也有一个变通方法:

    validates :title, presence: true, unless: -> { validation_context == :test }
    # or in your case
    validates :date_of_birth, unless: -> { validation_context == :age_related_fields }