提交 96eaeee4 编写于 作者: J Jeffrey Hardy 提交者: Pratik Naik

Add ActiveRecord::Base#invalid? as the opposite of #valid? [#2159 state:resolved]

Signed-off-by: NPratik Naik <pratiknaik@gmail.com>
上级 7a26a67b
...@@ -1040,6 +1040,11 @@ def valid? ...@@ -1040,6 +1040,11 @@ def valid?
errors.empty? errors.empty?
end end
# Performs the opposite of <tt>valid?</tt>. Returns true if errors were added, false otherwise.
def invalid?
!valid?
end
# Returns the Errors object that holds all information about attribute error messages. # Returns the Errors object that holds all information about attribute error messages.
def errors def errors
@errors ||= Errors.new(self) @errors ||= Errors.new(self)
......
...@@ -170,7 +170,7 @@ def test_create_with_exceptions_using_scope_and_empty_attributes ...@@ -170,7 +170,7 @@ def test_create_with_exceptions_using_scope_and_empty_attributes
assert_equal person.first_name, "Mary", "should be ok when no attributes are passed to create!" assert_equal person.first_name, "Mary", "should be ok when no attributes are passed to create!"
end end
end end
end end
def test_single_error_per_attr_iteration def test_single_error_per_attr_iteration
r = Reply.new r = Reply.new
...@@ -1430,6 +1430,17 @@ def test_validation_order ...@@ -1430,6 +1430,17 @@ def test_validation_order
assert_equal "can't be blank", t.errors.on("title").first assert_equal "can't be blank", t.errors.on("title").first
end end
def test_invalid_should_be_the_opposite_of_valid
Topic.validates_presence_of :title
t = Topic.new
assert t.invalid?
assert t.errors.invalid?(:title)
t.title = 'Things are going to change'
assert !t.invalid?
end
# previous implementation of validates_presence_of eval'd the # previous implementation of validates_presence_of eval'd the
# string with the wrong binding, this regression test is to # string with the wrong binding, this regression test is to
# ensure that it works correctly # ensure that it works correctly
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册