Flash-сообщение отображается дважды при использовании redirect_to (Rails 2) - PullRequest
4 голосов
/ 16 ноября 2011

Хорошо, это странно.

flash[:success] = 'some success message'
redirect_to :controller => 'media', :action => 'index'

Сообщение отображается после перенаправления, дело в том, что оно также появляется еще раз после нажатия на ссылку или перехода на другую страницу в моем приложении (после первого перенаправления)

Ответы [ 2 ]

7 голосов
/ 16 ноября 2011

Для флэш-памяти сначала нужно различать рендер и redirect_to, потому что флэш-сообщение удаляется только после перенаправления.Это у вас хорошо.

Затем, если вы хотите, чтобы сообщение отображалось в следующем запросе после перенаправления, используйте flash [].Если вы хотите, чтобы сообщение отображалось в текущем запросе, используйте flash.now [].

Посмотрите, поможет ли это.

Если вы действительно застряли, вы можете очистить его в представлении - хотя вы загружаете технический долг с помощью таких обходных приемов - ноесли часы тикают прямо сейчас:

- flash.slice(:notice, :message, :error, :success, :warning, :failure).each do |level, value|
  - if value.present?
    %div{:class => "flash #{h level}"}
      = h value
      - flash[level] = nil # set to nil in case the flash was set outside of a redirect
0 голосов
/ 26 апреля 2014

Кроме того, вы должны обратить внимание, чтобы не включать флеш-сообщения в файл view / layouts / application.html.erb. Это может произойти:)

...