我正在使用AJAX调用来获取一些JSON数据并从中生成HTML表单,因此我事先并不知道我将获得哪些输入字段。是否可以动态定义验证规则?我可能会使用ActiveAttr来定义伪模型,但是一旦收到数据,我想推进验证。
所以...任何想法?
答案 0 :(得分:1)
您可以使用ClassName.class_eval %Q[validates :#{name}, length: {minimum: 5}]
动态添加验证。当然,您需要为name
变量添加setter和getter。 class_eval
使用字符串,因此您有无限的可能性。
答案 1 :(得分:0)
ActiveModel
和自定义验证方法或类的组合应该可以解决问题。您不能使用(AFAIK)标准验证声明,因为您在声明类时不知道字段。