我在模型中设置了验证:
validates_inclusion_of :height, :in => 36..96, :allow_nil => true, :message => 'must be between 3 and 8 feet'
现在我想在 JQ 验证中设置相同的验证范围。我可以在 JavaScript 文件中重复相同的值,但更好的方法是以编程方式获取验证范围并通过视图输出。
如果可能的话,如何在 Rails 中以编程方式获取验证范围?
我在模型中设置了验证:
validates_inclusion_of :height, :in => 36..96, :allow_nil => true, :message => 'must be between 3 and 8 feet'
现在我想在 JQ 验证中设置相同的验证范围。我可以在 JavaScript 文件中重复相同的值,但更好的方法是以编程方式获取验证范围并通过视图输出。
如果可能的话,如何在 Rails 中以编程方式获取验证范围?
您可以像这样访问模型的验证:
Model.validators
要获得这些特定值,例如:
Model.validators_on(:height).select {|v| v.class == ActiveModel::Validations::InclusionValidator}.first.options[:in]
将返回您的范围:
36..96
您可以使用Range#min
andRange#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