Rails验证动态创建的表单

时间:2012-04-18 14:23:02

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

我正在使用AJAX调用来获取一些JSON数据并从中生成HTML表单,因此我事先并不知道我将获得哪些输入字段。是否可以动态定义验证规则?我可能会使用ActiveAttr来定义伪模型,但是一旦收到数据,我想推进验证。

所以...任何想法?

2 个答案:

答案 0 :(得分:1)

您可以使用ClassName.class_eval %Q[validates :#{name}, length: {minimum: 5}]动态添加验证。当然,您需要为name变量添加setter和getter。 class_eval使用字符串,因此您有无限的可能性。

答案 1 :(得分:0)

ActiveModel和自定义验证方法或类的组合应该可以解决问题。您不能使用(AFAIK)标准验证声明,因为您在声明类时不知道字段。