【问题标题】:Rails model conditional vaidationRails 模型条件验证
【发布时间】:2011-10-10 13:31:10
【问题描述】:

我使用以下方法验证模型中的字段:

validates :first_name, :presence => true, :if => :should_validate?
validates :last_name, :presence => true, :if => :should_validate?
...

模型中有很多字段需要验证,如果我为每个字段指定 :if => 方法,效果会不太好。

是否可以在块中嵌入 this validates 方法而不是为每个方法提供 :if => 方法?

【问题讨论】:

    标签: ruby-on-rails validation model conditional


    【解决方案1】:

    您需要验证的条件是什么?如果您不需要它验证,您就不能离开那条线吗?否则,您可以只验证某些操作,因此您不需要评估 should_validate?,例如:

    validates :first_name, :last_name, :presence => true, :only => [:create, :update]
    

    【讨论】:

    • should_validate 方法检查模型的字段之一,因此 :only => 选项在这里不起作用。
    【解决方案2】:

    我不认为有什么开箱即用的东西。如果需要,您可以使用自定义验证器。

    【讨论】:

      【解决方案3】:

      您当然可以编写自己的自定义验证器,但如果您只是验证存在,这可能会奏效:

      validates :first_name, :last_name, :presence => true, :if => :should_validate?
      

      【讨论】:

      • 这个模型中有很多字段,其中一些还验证格式。
      猜你喜欢
      • 1970-01-01
      • 2014-08-29
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      相关资源
      最近更新 更多