Change the deprecation messages to show the preferred way to work with

ActiveModel::Errors
上级 08d9c753
......@@ -49,7 +49,7 @@ behavior out of the box:
send("#{attr}=", nil)
end
end
person = Person.new
person.clear_name
person.clear_age
......@@ -132,7 +132,7 @@ behavior out of the box:
"Name"
end
end
person = Person.new
person.name = nil
person.validate!
......@@ -216,10 +216,10 @@ behavior out of the box:
{Learn more}[link:classes/ActiveModel/Validations.html]
* Custom validators
class HasNameValidator < ActiveModel::Validator
def validate(record)
record.errors.messages[:name] << "must exist" if record.name.blank?
record.errors.add(:name, "must exist") if record.name.blank?
end
end
......
......@@ -114,9 +114,9 @@ def include?(attribute)
# person.errors.get(:age) # => []
def get(key)
ActiveSupport::Deprecation.warn(<<-MESSAGE.squish)
ActiveModel::Errors#get is deprecated and will be removed in Rails 5.1
ActiveModel::Errors#get is deprecated and will be removed in Rails 5.1.
To achieve the same use messages[:#{key}]
To achieve the same use model.errors[:#{key}].
MESSAGE
messages[key]
......@@ -129,9 +129,9 @@ def get(key)
# person.errors.get(:name) # => ["can't be nil"]
def set(key, value)
ActiveSupport::Deprecation.warn(<<-MESSAGE.squish)
ActiveModel::Errors#set is deprecated and will be removed in Rails 5.1
ActiveModel::Errors#set is deprecated and will be removed in Rails 5.1.
To achieve the same use messages[:#{key}] = "#{value}"
Use model.errors.add(:#{key}, #{value.inspect}) instead.
MESSAGE
messages[key] = value
......@@ -162,9 +162,9 @@ def [](attribute)
# person.errors[:name] # => ['must be set']
def []=(attribute, error)
ActiveSupport::Deprecation.warn(<<-MESSAGE.squish)
ActiveModel::Errors#[]= is deprecated and will be removed in Rails 5.1
ActiveModel::Errors#[]= is deprecated and will be removed in Rails 5.1.
To achieve the same use messages[:#{attribute}] << "#{error}"
Use model.errors.add(:#{attribute}, #{error.inspect}) instead.
MESSAGE
messages[attribute.to_sym] << error
......
......@@ -15,7 +15,7 @@ module ActiveModel
# class MyValidator < ActiveModel::Validator
# def validate(record)
# if some_complex_logic
# record.errors.messages[:base] << "This record is invalid"
# record.errors.add(:base, "This record is invalid")
# end
# end
#
......
......@@ -1078,7 +1078,7 @@ Another way to do this is using `[]=` setter
```ruby
class Person < ActiveRecord::Base
def a_method_used_for_validation_purposes
errors.messages[:name] << "cannot contain the characters !@#%*()_-+="
errors.messages.add(:name, "cannot contain the characters !@#%*()_-+=")
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册