Pau*_*aul 2 validation ruby-on-rails range
我在模型中设置了验证:
validates_inclusion_of :height, :in => 36..96, :allow_nil => true, :message => 'must be between 3 and 8 feet'
Run Code Online (Sandbox Code Playgroud)
现在我想在JQ验证中设置相同的验证范围.我可以在JavaScript文件中重复相同的值,但更好的方法是以编程方式获取验证范围并通过视图输出.
如果可能的话,如何在Rails中以编程方式获取验证范围?
您可以访问模型的验证,如下所示:
Model.validators
Run Code Online (Sandbox Code Playgroud)
要获得这些特定值,请执行以下操作:
Model.validators_on(:height).select {|v| v.class == ActiveModel::Validations::InclusionValidator}.first.options[:in]
Run Code Online (Sandbox Code Playgroud)
将返回您的范围:
36..96
Run Code Online (Sandbox Code Playgroud)
您可以使用Range#min和Range#max获取整数值.
为方便起见,制作一些类似的方法:
class Model < ActiveRecord::Base
validates_inclusion_of :height, :in => 36..96, :allow_nil => true, :message => 'must be between 3 and 8 feet'
def self.min_height
validators_on(:height).select {|v| v.class == ActiveModel::Validations::InclusionValidator}.first.options[:in].min
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |