diff --git a/activemodel/test/cases/validations_test.rb b/activemodel/test/cases/validations_test.rb index 18b8d9e4af..2a4e9f842f 100644 --- a/activemodel/test/cases/validations_test.rb +++ b/activemodel/test/cases/validations_test.rb @@ -452,4 +452,12 @@ class ValidationsTest < ActiveModel::TestCase assert t.invalid? assert_equal ["You have failed me for the last time, Admiral."], t.errors[:title] end + + def test_validation_with_message_as_proc_that_takes_record_and_data_as_a_parameters + Topic.validates_presence_of(:title, message: proc { |record, data| "#{data[:attribute]} is missing. You have failed me for the last time, #{record.author_name}." }) + + t = Topic.new(author_name: 'Admiral') + assert t.invalid? + assert_equal ["Title is missing. You have failed me for the last time, Admiral."], t.errors[:title] + end end