Impossible to delete a flash

2019-09-16 06:33发布

问题:

I made a mistake before migrating a plugin, and have written

flash[:notice] = :label_presta_added

instead of

flash[:notice] = l(:label_presta_added)

I corrected my mistake but it seems that my Redmine Plugin has trashed my Redmine. Even though I delete my plugin a migrate once again, I still get this error:

    Started GET "/" for 127.0.0.1 at 2016-06-01 22:21:37 +0200
Processing by WelcomeController#index as HTML
  Current user: admin (id=1)
  Rendered welcome/index.html.erb within layouts/base (28.1ms)
Completed 500 Internal Server Error in 366ms (ActiveRecord: 116.0ms)

ActionView::Template::Error (undefined method `html_safe' for :label_presta_added:Symbol
Did you mean?  html_safe?):
     97:     <div id="sidebar">
     98:         <%= yield :sidebar %>
     99:         <%= view_layouts_base_sidebar_hook_response %>
    100:     </div>
    101: 
    102:     <div id="content">
    103:         <%= render_flash_messages %>
  app/helpers/application_helper.rb:312:in `block in render_flash_messages'
  app/helpers/application_helper.rb:311:in `render_flash_messages'
  app/views/layouts/base.html.erb:100:in `_app_views_layouts_base_html_erb__4104276684161420982_39604440'
  lib/redmine/sudo_mode.rb:63:in `sudo_mode'

Can somebody give me a hand here? Thanks in advance!

回答1:

This is stored in your session, so usually changing the session secret key will invalidate all sessions and discard any old session data.

You can also try and rescue to clear it out as a one-time deal.



回答2:

Have you restarted the server? Or you can use flash[:notice] = nil to remove it.



回答3:

It looks like it throws a html_safe error. Can you see if the method which is rendering the flash is using html_safe? It looks like its coming from there.

Not sure exactly, may be shooting in the dark. But read these and try may be:

actionview::template::error(undefined method 'html_safe' for nil:NilClass)

http://www.redmine.org/issues/8477