未验证 提交 73089916 编写于 作者: B bogdanvlviv

Execute `ConfirmationValidator` validation when `_confirmation`'s value is `false`

上级 03ac95a1
* Execute `ConfirmationValidator` validation when `_confirmation`'s value is `false`.
*bogdanvlviv*
* Allow passing a Proc or Symbol to length validator options.
*Matt Rohrer*
......
......@@ -9,7 +9,7 @@ def initialize(options)
end
def validate_each(record, attribute, value)
if (confirmed = record.send("#{attribute}_confirmation"))
unless (confirmed = record.send("#{attribute}_confirmation")).nil?
unless confirmation_value_equal?(record, attribute, value, confirmed)
human_attribute_name = record.class.human_attribute_name(attribute)
record.errors.add(:"#{attribute}_confirmation", :confirmation, options.except(:case_sensitive).merge!(attribute: human_attribute_name))
......
......@@ -37,6 +37,19 @@ def test_title_confirmation
assert t.valid?
end
def test_validates_confirmation_of_with_boolean_attribute
Topic.validates_confirmation_of(:approved)
t = Topic.new(approved: true, approved_confirmation: nil)
assert t.valid?
t.approved_confirmation = false
assert t.invalid?
t.approved_confirmation = true
assert t.valid?
end
def test_validates_confirmation_of_for_ruby_class
Person.validates_confirmation_of :karma
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册