2012-06-29 55 views
2

我給自己定的驗證模型:Rails的:得到驗證範圍編程

validates_inclusion_of :height, :in => 36..96, :allow_nil => true, :message => 'must be between 3 and 8 feet' 

現在我想設置相同的驗證在JQ驗證範圍。我可以重複JavaScript文件相同的價值觀,但更好的辦法,通過以做到這一點會得到驗證範圍編程和輸出。

如何獲得驗證範圍編程Rails中,如果有可能的話?

回答

5

您可以訪問模型的驗證,像這樣:

Model.validators 

得到那些特定值,是這樣的:

Model.validators_on(:height).select {|v| v.class == ActiveModel::Validations::InclusionValidator}.first.options[:in] 

會回到你的範圍:

36..96 

你可以使用Range#minRange#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