mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Refactor length validation
This commit is contained in:
parent
f48d3d4df6
commit
157c37f558
2 changed files with 6 additions and 6 deletions
|
@ -42,9 +42,9 @@ module ActiveModel
|
|||
next unless check_value = options[key]
|
||||
|
||||
value ||= [] if key == :maximum
|
||||
|
||||
next if value.kind_of?(Fixnum) && value.to_s.size.send(validity_check, check_value)
|
||||
next if value && value.size.send(validity_check, check_value)
|
||||
|
||||
value_length = value.respond_to?(:length) ? value.length : value.to_s.length
|
||||
next if value_length.send(validity_check, check_value)
|
||||
|
||||
errors_options = options.except(*RESERVED_OPTIONS)
|
||||
errors_options[:count] = check_value
|
||||
|
|
|
@ -341,14 +341,14 @@ class LengthValidationTest < ActiveModel::TestCase
|
|||
assert t.errors[:content].any?
|
||||
assert_equal ["Your essay must be at least 5 words."], t.errors[:content]
|
||||
end
|
||||
|
||||
|
||||
def test_validates_length_of_for_fixnum
|
||||
Topic.validates_length_of(:approved, :is => 4)
|
||||
|
||||
|
||||
t = Topic.new("title" => "uhohuhoh", "content" => "whatever", :approved => 1)
|
||||
assert t.invalid?
|
||||
assert t.errors[:approved].any?
|
||||
|
||||
|
||||
t = Topic.new("title" => "uhohuhoh", "content" => "whatever", :approved => 1234)
|
||||
assert t.valid?
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue