instance method
validates_length_of
Ruby on Rails 3.2.22.5
Since v3.0.20Signature
validates_length_of(*attr_names)
Validates that the specified attribute matches the length restrictions supplied. Only one option can be used at a time:
class Person < ActiveRecord::Base validates_length_of :first_name, :maximum => 30 validates_length_of :last_name, :maximum => 30, :message => "less than 30 if you don't mind" validates_length_of :fax, :in => 7..32, :allow_nil => true validates_length_of :phone, :in => 7..32, :allow_blank => true validates_length_of :user_name, :within => 6..20, :too_long => "pick a shorter name", :too_short => "pick a longer name" validates_length_of :zip_code, :minimum => 5, :too_short => "please enter at least 5 characters" validates_length_of :smurf_leader, :is => 4, :message => "papa is spelled with 4 characters... don't play me." validates_length_of :essay, :minimum => 100, :too_short => "Your essay must be at least 100 words.", :tokenizer => lambda { |str| str.scan(/\w+/) } end
Configuration options:
-
:minimum- The minimum size of the attribute. -
:maximum- The maximum size of the attribute. -
:is- The exact size of the attribute. -
:within- A range specifying the minimum and maximum size of the attribute. -
:in- A synonym(or alias) for:within. -
:allow_nil- Attribute may benil; skip validation. -
:allow_blank- Attribute may be blank; skip validation. -
:too_long- The error message if the attribute goes over the maximum (default is: “is too long (maximum is %{count} characters)”). -
:too_short- The error message if the attribute goes under the minimum (default is: “is too short (min is %{count} characters)”). -
:wrong_length- The error message if using the:ismethod and the attribute is the wrong size (default is: “is the wrong length should be %{count} characters)”). -
:message- The error message to use for a:minimum,:maximum, or:isviolation. An alias of the appropriatetoo_long/too_short/wrong_lengthmessage. -
:on- Specifies when this validation is active. Runs in all validation contexts by default (nil), other options are:createand:update. -
:if- Specifies a method, proc or string to call to determine if the validation should occur (e.g.:if => :allow_validation, or:if => Proc.new { |user| user.signup_step > 2 }). The method, proc or string should return or evaluate to a true or false value. -
:unless- Specifies a method, proc or string to call to determine if the validation should not occur (e.g.:unless => :skip_validation, or:unless => Proc.new { |user| user.signup_step <= 2 }). The method, proc or string should return or evaluate to a true or false value. -
:tokenizer- Specifies how to split up the attribute string. (e.g.:tokenizer => lambda {|str| str.scan(/\w+/)}to count words as in above example). Defaults tolambda{ |value| value.split(//) }which counts individual characters. -
:strict- Specifies whether validation should be strict. SeeActiveModel::Validation#validates!for more information.
Parameters
-
attr_namesrest
Source
# File activemodel/lib/active_model/validations/length.rb, line 120
def validates_length_of(*attr_names)
validates_with LengthValidator, _merge_attributes(attr_names)
end
Defined in activemodel/lib/active_model/validations/length.rb line 120
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveModel::Validations::HelperMethods