Попытка выяснить, почему мои оповещения Rails не работают должным образом - PullRequest
0 голосов
/ 03 сентября 2018

Я не могу найти официально документированный список типов оповещений в Rails по какой-либо причине. В моих контроллерах я перенаправляю пользователей обратно, и пока помощник redirect_back, похоже, не добавляет мой второй параметр в переменную flash.

Например, это работает:

redirect_back fallback_location: users_path, notice: "Added user."

и это не так:

redirect_back fallback_location: users_path, danger: "Deleted user."

Вот как выглядит мой views/layouts/application.html.erb, когда дело доходит до отображения предупреждений:

  <% flash.each do |key, value| %>
  <br /> 
  <div class="alert alert-<%= key_type(key) %> fade in">
    <button class="close" data-dismiss="alert">
      ×
    </button>
    <i class="fa-fw fa fa-<%= key_icon(key) %>"></i>
    <strong><%= key.capitalize %>:</strong> <%= value %>
  </div>
  <% end %>

Причина, по которой у меня есть помощники key_type и key_icon, заключается в том, что Rails, похоже, использует эти типы оповещений, такие как notice, которые не соответствуют оповещениям моей темы.

Таким образом, я поместил binding.pry сразу после открытия flash.each, и я вижу, что если я перенаправлю_бэк с установленным notice, он попадет, что означает, что что-то есть во флэш-памяти. Но я попытался перенаправить обратно с danger, error, warning и т. Д., И ни один из них не работает.

Я не уверен, что делаю неправильно, но я не могу понять, что на самом деле устанавливается в flash.

Если я установлю его вручную перед методом redirect_back, то он будет работать без сбоев, например:

flash[:danger] = "Deleted user."

но не с помощью метода redirect_back.

Есть предложения?

1 Ответ

0 голосов
/ 03 сентября 2018

Проверьте официальные руководства https://guides.rubyonrails.org/action_controller_overview.html#the-flash

По умолчанию он обрабатывает только notice и alert, и вы можете использовать все, что захотите, с клавишей flash. В примере используется redirect_to, но, я думаю, redirect_back использует ту же логику для вспышек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...