【问题标题】:Rails validation of dynamically created formsRails 验证动态创建的表单
【发布时间】:2012-04-18 14:23:02
【问题描述】:

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

那么……有什么想法吗?

【问题讨论】:

  • 来自 #rubyonrails freenode 聊天室的用户 epochwolf 建议我使用 ActiveModel。 rubyinside.com/…
  • 您的字段是否也是未知的(即您将创建它们?)或者您有一个固定的表?也许您可以使用 :if => 选项,从而排除某些验证规则?
  • al.3xa,你是怎么解决这个问题的?

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多