mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Be sure to convert namespaced names to we have 'Parrots name' instead of 'Parrots.name' in error messages.
This commit is contained in:
parent
dcafe995bf
commit
5fdd0e80a4
4 changed files with 11 additions and 3 deletions
|
@ -97,13 +97,14 @@ module ActiveModel
|
|||
full_messages = []
|
||||
|
||||
each do |attribute, messages|
|
||||
messages = Array.wrap(messages)
|
||||
messages = Array(messages)
|
||||
next if messages.empty?
|
||||
|
||||
if attribute == :base
|
||||
messages.each {|m| full_messages << m }
|
||||
else
|
||||
attr_name = @base.class.human_attribute_name(attribute)
|
||||
attr_name = attribute.to_s.gsub('.', '_').humanize
|
||||
attr_name = @base.class.human_attribute_name(attribute, :default => attr_name)
|
||||
options = { :default => ' ', :scope => @base.class.i18n_scope }
|
||||
prefix = attr_name + I18n.t(:"errors.format.separator", options)
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ class I18nValidationTest < ActiveModel::TestCase
|
|||
|
||||
def test_errors_full_messages_translates_human_attribute_name_for_model_attributes
|
||||
@person.errors.add('name', 'empty')
|
||||
I18n.expects(:translate).with(:"person.name", :default => ['Name'], :scope => [:activemodel, :attributes], :count => 1).returns('Name')
|
||||
I18n.expects(:translate).with(:"person.name", :default => ['Name', 'Name'], :scope => [:activemodel, :attributes], :count => 1).returns('Name')
|
||||
@person.errors.full_messages
|
||||
end
|
||||
|
||||
|
|
|
@ -71,6 +71,12 @@ class ValidationsTest < ActiveModel::TestCase
|
|||
assert_equal 2, r.errors.count
|
||||
end
|
||||
|
||||
def test_errors_on_nested_attributes_expands_name
|
||||
t = Topic.new
|
||||
t.errors["replies.name"] << "can't be blank"
|
||||
assert_equal ["Replies name can't be blank"], t.errors.full_messages
|
||||
end
|
||||
|
||||
def test_errors_on_base
|
||||
r = Reply.new
|
||||
r.content = "Mismatch"
|
||||
|
|
|
@ -982,6 +982,7 @@ module AutosaveAssociationOnACollectionAssociationTests
|
|||
|
||||
assert !@pirate.valid?
|
||||
assert_equal ["cannot be blank"], @pirate.errors["#{@association_name}.name"]
|
||||
assert_equal ["#{@association_name.to_s.titleize} name cannot be blank"], @pirate.errors.full_messages
|
||||
assert @pirate.errors[@association_name].empty?
|
||||
ensure
|
||||
I18n.backend.store_translations(:en, :activerecord => { :errors => { :models =>
|
||||
|
|
Loading…
Reference in a new issue