diff options
author | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-03-09 15:36:45 +0530 |
---|---|---|
committer | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-04-05 12:55:02 +0530 |
commit | 7bdb4b5598ec9bd7473f52e59ee58682c4d23801 (patch) | |
tree | 3648b3b62e5eb6ef77c9ca44935d5a34e1710dd7 /activemodel/test/cases | |
parent | 2a53011fd35b6c1d6b76993bf12352d7fe7d31c8 (diff) | |
download | rails-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/cases')
-rw-r--r-- | activemodel/test/cases/validations_test.rb | 8 |
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 |