如何检查ActiveRecord :: Base Objects上存在的验证

Jam*_*ath 4 validation activerecord ruby-on-rails

我想创建一个辅助方法来自动输出带有:maxlength属性的text_fields.我希望根据字段属性validates_length验证中指定的:max来设置此maxlegth,以便保持DRY.

我的问题是:是否有一种很好的方法来检查对象属性上存在的验证,然后从该验证中提取最大长度.

我还计划从validates_format中提取其他内容,例如正则表达式,这样我就可以在text_field上设置一个属性,然后js可以使用该属性来运行客户端验证.

谢谢.

加分点:为什么没有Rails自动为我们添加maxlength到文本字段?

Rya*_*igg 9

在Rails 3中,您可以_validators在对象上调用该方法以获取将运行的验证器列表:

t = Ticket.new
t._validators
Run Code Online (Sandbox Code Playgroud)