aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test
diff options
context:
space:
mode:
authorPrathamesh Sonpatki <csonpatki@gmail.com>2016-03-09 15:36:45 +0530
committerPrathamesh Sonpatki <csonpatki@gmail.com>2016-04-05 12:55:02 +0530
commit7bdb4b5598ec9bd7473f52e59ee58682c4d23801 (patch)
tree3648b3b62e5eb6ef77c9ca44935d5a34e1710dd7 /activemodel/test
parent2a53011fd35b6c1d6b76993bf12352d7fe7d31c8 (diff)
downloadrails-7bdb4b5598ec9bd7473f52e59ee58682c4d23801.tar.gz
rails-7bdb4b5598ec9bd7473f52e59ee58682c4d23801.tar.bz2
rails-7bdb4b5598ec9bd7473f52e59ee58682c4d23801.zip
Allow passing record being validated to error message generator
- Pass object to I18n helper so that when calling message proc, it will pass that object as argument to the proc and we can generate custom error messages based on current record being validated. - Based on https://github.com/rails/rails/issues/856. [Ɓukasz Bandzarewicz, Prathamesh Sonpatki]
Diffstat (limited to 'activemodel/test')
-rw-r--r--activemodel/test/cases/validations_test.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/activemodel/test/cases/validations_test.rb b/activemodel/test/cases/validations_test.rb
index f0317ad219..18b8d9e4af 100644
--- a/activemodel/test/cases/validations_test.rb
+++ b/activemodel/test/cases/validations_test.rb
@@ -444,4 +444,12 @@ class ValidationsTest < ActiveModel::TestCase
assert topic.invalid?
assert duped.valid?
end
+
+ def test_validation_with_message_as_proc_that_takes_a_record_as_a_parameter
+ Topic.validates_presence_of(:title, message: proc { |record| "You have failed me for the last time, #{record.author_name}." })
+
+ t = Topic.new(author_name: 'Admiral')
+ assert t.invalid?
+ assert_equal ["You have failed me for the last time, Admiral."], t.errors[:title]
+ end
end