提交 157c37f5 编写于 作者: S Santiago Pastorino

Refactor length validation

上级 f48d3d4d
......@@ -42,9 +42,9 @@ def validate_each(record, attribute, value)
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 @@ def test_validates_length_of_with_block
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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册