aboutsummaryrefslogtreecommitdiffstats
path: root/guides
diff options
context:
space:
mode:
authorPrathamesh Sonpatki <csonpatki@gmail.com>2016-04-06 09:29:01 +0530
committerPrathamesh Sonpatki <csonpatki@gmail.com>2016-04-06 09:29:01 +0530
commit7f1fc1ee093732de7da9427370ff4858790a3684 (patch)
tree1f6f4bbe943b4e5e2d9532139c0d995e2c7d5bbd /guides
parentcb4f6875b6a27894f3456cda79cb929f7243a1ac (diff)
downloadrails-7f1fc1ee093732de7da9427370ff4858790a3684.tar.gz
rails-7f1fc1ee093732de7da9427370ff4858790a3684.tar.bz2
rails-7f1fc1ee093732de7da9427370ff4858790a3684.zip
Update example of passing a proc to `:message` option for validating records [ci skip]
- This change is made as the behavior for `:message` proc was changed in https://github.com/rails/rails/pull/24119. - Also check https://github.com/rails/rails/pull/24431#issuecomment-206106790 for reference.
Diffstat (limited to 'guides')
-rw-r--r--guides/CHANGELOG.md6
-rw-r--r--guides/source/active_record_validations.md8
2 files changed, 10 insertions, 4 deletions
diff --git a/guides/CHANGELOG.md b/guides/CHANGELOG.md
index d35d0f1976..8132f77b4e 100644
--- a/guides/CHANGELOG.md
+++ b/guides/CHANGELOG.md
@@ -1,3 +1,9 @@
+* Update example of passing a proc to `:message` option for validating records.
+
+ This behavior was recently changed in https://github.com/rails/rails/pull/24119 to
+ pass the object being validated as first argument to the `:message` proc
+ instead of key of the field being validated.
+
## Rails 5.0.0.beta3 (February 24, 2016) ##
* No changes.
diff --git a/guides/source/active_record_validations.md b/guides/source/active_record_validations.md
index bd16ccad12..1cf4abce10 100644
--- a/guides/source/active_record_validations.md
+++ b/guides/source/active_record_validations.md
@@ -785,7 +785,7 @@ A `String` `:message` value can optionally contain any/all of `%{value}`,
`%{attribute}`, and `%{model}` which will be dynamically replaced when
validation fails.
-A `Proc` `:message` value is given two arguments: a message key for i18n, and
+A `Proc` `:message` value is given two arguments: the object being validated, and
a hash with `:model`, `:attribute`, and `:value` key-value pairs.
```ruby
@@ -801,10 +801,10 @@ class Person < ApplicationRecord
# Proc
validates :username,
uniqueness: {
- # key = "activerecord.errors.models.person.attributes.username.taken"
+ # object = person object being validated
# data = { model: "Person", attribute: "Username", value: <username> }
- message: ->(key, data) do
- "#{data[:value]} taken! Try again #{Time.zone.tomorrow}"
+ message: ->(object, data) do
+ "Hey #{object.name}!, #{data[:value]} is taken already! Try again #{Time.zone.tomorrow}"
end
}
end