Flash-уведомление о Ruby on Rails не работает должным образом - PullRequest
2 голосов
/ 15 октября 2019

Flash-уведомление не работает. Я использую рельсы 5.1. Мой код выглядит так:

def message
  redirect_to users_path, notice: "Message"
end

<% if flash.present? %>
  <% flash.each do |k, v| %>
    <p class="abc" id="a"><%= v %></p>
  <% end %>
<% else %>
  <p class="a" id="b"></p>
<% end %>

Флэш-сообщение приходит несколько раз, а несколько раз оно не приходит, оно отправляется в блоке else.

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Я думаю, что флэш-хэш всегда присутствует. Вместо этого вы можете проверить, пусто ли оно https://api.rubyonrails.org/classes/ActionDispatch/Flash/FlashHash.html#method-i-empty-3F

<% if flash.empty? %>
  <p class="a" id="b"></p>
<% else %>
  <% flash.each do |k, v| %>
    <p class="abc" id="a"><%= v %></p>
  <% end %>
<% end %>
0 голосов
/ 15 октября 2019

Вы можете попробовать как:

def message
  flash[:notice] = 'Message'
  redirect_to users_path
end

А на ваш взгляд:

<% if flash[:notice].present? %>
  <% flash.each do |k, v| %>
    <p class="abc" id="a"><%= v %></p>
  <% end %>
<% else %>
  <p class="a" id="b"></p>
<% end %>

Надеюсь, это решит вашу проблему.

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