条件验证RAILS模型 [英] Conditional Validation RAILS MODEL

查看:66
本文介绍了条件验证RAILS模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的模型文件中,我试图根据隐藏的表单值进行条件验证.似乎是:form_type_main?方法永远不会被调用,或者只是行不通.我想做错什么吗?

In my model file, I am trying to make a conditional validation depending on a hidden form value. It seems like the :form_type_main? method never gets called, or just does not work. Want am I doing wrong?

  attr_accessor(:form_type,:field1,:field2,:field3,:field4)

  required_main = ["field1", "field2"]
  required_second = ["field3", "field4"]

  if :form_type_main?
    required = required_main
  else
    required = required_second
  end

  required.each do |i|
    validates_presence_of i
  end


  def form_type_main?
    form_type == "main"
  end

推荐答案

您可以像这样简单地定义验证:

You may simply define the validations like this:

REQUIRED_MAIN = [:field1, :field2]
REQUIRED_SECOND = [:field3, :field4]

validates_presence_of *REQUIRED_MAIN, if: :form_type_main?
validates_presence_of *REQUIRED_SECOND, unless: :form_type_main?

def form_type_main?
  form_type == "main"
end

这篇关于条件验证RAILS模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆