Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Revert "Fix validates_presence_of with :allow_nil or `:allow_blan…
…k` options."

This reverts commit 93366c7.

REASON: This is backward incompatible. Also this behavior is documented
on the guides.
  • Loading branch information
rafaelfranca committed Dec 26, 2012
1 parent 93366c7 commit d38c8ca
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 42 deletions.
5 changes: 0 additions & 5 deletions activemodel/CHANGELOG.md
@@ -1,10 +1,5 @@
## Rails 3.2.10 (unreleased) ##

* Fix `validates_presence_of` with `:allow_nil` or `:allow_blank` options.
Fixes #8621.

*Colin Kelley and Rafael Mendonça França*

* Specify type of singular association during serialization *Steve Klabnik*


Expand Down
6 changes: 3 additions & 3 deletions activemodel/lib/active_model/validations/presence.rb
Expand Up @@ -4,8 +4,8 @@ module ActiveModel
# == Active Model Presence Validator
module Validations
class PresenceValidator < EachValidator
def validate_each(record, attr_name, value)
record.errors.add(attr_name, :blank, options) if value.blank?
def validate(record)
record.errors.add_on_blank(attributes, options)
end
end

Expand Down Expand Up @@ -39,7 +39,7 @@ module HelperMethods
# if the validation should not occur (e.g. <tt>:unless => :skip_validation</tt>,
# or <tt>:unless => Proc.new { |user| user.signup_step <= 2 }</tt>). The method,
# proc or string should return or evaluate to a true or false value.
# * <tt>:strict</tt> - Specifies whether validation should be strict.
# * <tt>:strict</tt> - Specifies whether validation should be strict.
# See <tt>ActiveModel::Validation#validates!</tt> for more information.
def validates_presence_of(*attr_names)
validates_with PresenceValidator, _merge_attributes(attr_names)
Expand Down
34 changes: 0 additions & 34 deletions activemodel/test/cases/validations/presence_validation_test.rb
Expand Up @@ -70,38 +70,4 @@ def test_validates_presence_of_for_ruby_class_with_custom_reader
p[:karma] = "Cold"
assert p.valid?
end

def test_validates_presence_of_with_allow_nil_option
Topic.validates_presence_of(:title, :allow_nil => true)

t = Topic.new(:title => "something")
assert t.valid?

t.title = ""
assert t.invalid?
assert_equal ["can't be blank"], t.errors[:title]

t.title = " "
assert t.invalid?
assert_equal ["can't be blank"], t.errors[:title]

t.title = nil
assert t.valid?
end

def test_validates_presence_of_with_allow_blank_option
Topic.validates_presence_of(:title, :allow_blank => true)

t = Topic.new(:title => "something")
assert t.valid?

t.title = ""
assert t.valid?

t.title = " "
assert t.valid?

t.title = nil
assert t.valid?
end
end

0 comments on commit d38c8ca

Please sign in to comment.