diff --git a/lib/devise/controllers/internal_helpers.rb b/lib/devise/controllers/internal_helpers.rb index 25972282..b776679c 100644 --- a/lib/devise/controllers/internal_helpers.rb +++ b/lib/devise/controllers/internal_helpers.rb @@ -102,7 +102,8 @@ module Devise options[:scope] = "devise.#{controller_name}" options[:default] = Array(options[:default]).unshift(kind.to_sym) options[:resource_name] = resource_name - flash[key] = I18n.t("#{resource_name}.#{kind}", options) + message = I18n.t("#{resource_name}.#{kind}", options) + flash[key] = message.blank? ? nil : message end def clean_up_passwords(object) #:nodoc: diff --git a/test/controllers/internal_helpers_test.rb b/test/controllers/internal_helpers_test.rb index 20c3c994..415de63f 100644 --- a/test/controllers/internal_helpers_test.rb +++ b/test/controllers/internal_helpers_test.rb @@ -53,4 +53,20 @@ class HelpersTest < ActionController::TestCase test 'is a devise controller' do assert @controller.devise_controller? end + + test 'does not issue blank flash messages' do + MyController.send(:public, :set_flash_message) + I18n.stubs(:t).returns(' ') + @controller.set_flash_message :notice, :send_instructions + assert flash[:notice].nil? + MyController.send(:protected, :set_flash_message) + end + + test 'issues non-blank flash messages normally' do + MyController.send(:public, :set_flash_message) + I18n.stubs(:t).returns('non-blank') + @controller.set_flash_message :notice, :send_instructions + assert flash[:notice] == 'non-blank' + MyController.send(:protected, :set_flash_message) + end end