【发布时间】:2010-11-17 04:03:56
【问题描述】:
我想创建一个辅助方法来自动输出带有 :maxlength 属性的 text_fields。我希望根据字段属性 validates_length 验证中指定的 :max 设置此 maxlegth,以保持 DRY。
我的问题是:有没有一种好方法可以检查对象属性上存在的验证,然后从该验证中提取最大长度。
我还计划从 validates_format 中提取正则表达式等其他内容,以便我可以在 text_field 上设置一个属性,然后 js 可以使用该属性来运行客户端验证。
谢谢。
加分项:为什么 Rails 不自动为我们添加最大长度到文本字段?
【问题讨论】:
-
这是另一个想法。您可以创建一个 rake 任务来扫描 Rails 模型的所有代码以寻找验证。然后您可以解析所有验证并将它们转换为 javascript。不过,这似乎需要做很多工作。
-
谢谢monocle,我早就想到了这个,但它看起来很hacky!你是对的,这听起来确实需要做很多工作,这是我一开始就试图通过这样做来节省的东西。我将深入研究这个项目的代码,看看他们是如何解决的:github.com/holman/live-validations
标签: ruby-on-rails validation activerecord