4

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

所以......有什么想法吗?

4

2 回答 2

1

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

于 2017-01-06T01:55:18.420 回答
0

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

于 2012-07-14T12:26:20.477 回答