From a7175ecc1db10ae788dd844cc38e2f96ee7506b8 Mon Sep 17 00:00:00 2001 From: jebw Date: Wed, 30 Apr 2014 12:24:17 +0100 Subject: [PATCH] Only rewrite implied model names If a model name comes from the translations (ie User.class.model_name.human) or if it has been supplied by the user (options[:object_name]) then show it as is. Only rewrite underscores if it has been derived from the supplied model, i.e. error_messages_for :user --- lib/action_view/helpers/dynamic_form.rb | 4 ++-- test/dynamic_form_test.rb | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/action_view/helpers/dynamic_form.rb b/lib/action_view/helpers/dynamic_form.rb index f127ff9..70b40e2 100644 --- a/lib/action_view/helpers/dynamic_form.rb +++ b/lib/action_view/helpers/dynamic_form.rb @@ -210,13 +210,13 @@ def error_messages_for(*params) html[key] = 'error_explanation' end end - options[:object_name] ||= params.first + options[:object_name] ||= params.first.to_s.gsub('_', ' ') I18n.with_options :locale => options[:locale], :scope => [:activerecord, :errors, :template] do |locale| header_message = if options.include?(:header_message) options[:header_message] else - locale.t :header, :count => count, :model => options[:object_name].to_s.gsub('_', ' ') + locale.t :header, :count => count, :model => options[:object_name].to_s end message = options.include?(:message) ? options[:message] : locale.t(:body) diff --git a/test/dynamic_form_test.rb b/test/dynamic_form_test.rb index 378a67c..0e94e93 100644 --- a/test/dynamic_form_test.rb +++ b/test/dynamic_form_test.rb @@ -292,9 +292,6 @@ def test_error_messages_for_many_objects # any default works too assert_dom_equal %(

2 errors prohibited this monkey from being saved

There were problems with the following fields:

), error_messages_for(:user, :post, :object_name => "monkey") - # should space object name - assert_dom_equal %(

2 errors prohibited this chunky bacon from being saved

There were problems with the following fields:

), error_messages_for(:user, :post, :object_name => "chunky_bacon") - # hide header and explanation messages with nil or empty string assert_dom_equal %(
), error_messages_for(:user, :post, :header_message => nil, :message => "")