diff options
Diffstat (limited to 'app/controllers/controller_extension/flash.rb')
-rw-r--r-- | app/controllers/controller_extension/flash.rb | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/app/controllers/controller_extension/flash.rb b/app/controllers/controller_extension/flash.rb index 1642141..45072cf 100644 --- a/app/controllers/controller_extension/flash.rb +++ b/app/controllers/controller_extension/flash.rb @@ -4,9 +4,13 @@ module ControllerExtension::Flash protected def flash_for(resource, options = {}) - return unless resource.changed? - add_flash_message_for resource - add_flash_errors_for resource if options[:with_errors] + if resource.is_a? Exception + add_flash_message_for_exception resource + else + return unless resource.changed? + add_flash_message_for resource + add_flash_errors_for resource if options[:with_errors] + end end def add_flash_message_for(resource) @@ -40,4 +44,12 @@ module ControllerExtension::Flash flash[:error] += "<br>" flash[:error] += resource.errors.full_messages.join(". <br>") end + + # + # This is pretty crude. It would be good to l10n in the future. + # + def add_flash_message_for_exception(exc) + flash[:error] = exc.to_s + end + end |