Флэш-сообщение не отображается в рельсах

у меня возникли проблемы при попытке использовать флэш-сообщение flash[:notice]. флэш-сообщение не показывает свое сообщение

Вот мой частичный вид формы

<%= form_tag bulk_push_api_v1_notifications_path do |f| %>
<fieldset class="inputs">
    <legend>
        <span>Details</span>
    </legend>
        <% if flash[:notice].present? %>
          <p class='flash-notice'><%= flash[:notice] %></p>
        <% elsif flash[:error].present? %>
          <p class='flash-error'><%= flash[:error] %></p>
        <% end %>
    <ol>
        <li class="file input required" id="play_media_input">
             <%= label_tag(:message, "Message : ") %>
             <%= text_area_tag :message,  nil, :required => true %>
            <p class="inline-hints">Only text can be sent</p>
        </li>
    </ol>
</fieldset>
<fieldset class="actions">
    <ol>
        <li class="action input_action " id="play_submit_action">
            <%= submit_tag("Send Notification") %>
        </li>
    </ol>
</fieldset>

и он вызовет этот метод из контроллера

def bulk_push
  begin
    User.send_bulk_notifications(params[:message])
    redirect_to admin_notification_path, :flash => { :notice => "Insufficient rights!" }
  rescue
    redirect_to admin_notification_path, :flash => { :error => "Error" }
  end

end

person Muhammad Rahmatullah    schedule 28.11.2017    source источник


Ответы (2)


Попробуйте приведенный ниже код для отображения flash сообщений:

контроллер

def bulk_push
  begin
    User.send_bulk_notifications(params[:message])
    redirect_to admin_notification_path, notice: "Insufficient rights!"
  rescue
    redirect_to admin_notification_path, alert: "Error"
  end

end

приложение/представления/макеты/application.html.erb

<% if notice %>
  <p class="alert alert-success"><%= notice %></p>
<% end %>
<% if alert %>
  <p class="alert alert-danger"><%= alert %></p>
<% end %>

<style type="text/css">
  .alert-success{
    color: green;
  }
  .alert-danger{
    color: red;
  }
</style>
person puneet18    schedule 28.11.2017
comment
Большое спасибо, сэр, это действительно помогает мне - person Muhammad Rahmatullah; 28.11.2017
comment
@MuhammadRahmatullah проголосуйте за мой ответ, если он вам подходит. Спасибо - person puneet18; 28.11.2017
comment
конечно, сэр, но в настоящее время я получаю некоторые ошибки, когда голосую за ваш ответ Daily vote limit reached; vote again in 16 hours. - person Muhammad Rahmatullah; 28.11.2017
comment
@MuhammadRahmatullah Ок Нп - person puneet18; 28.11.2017

Flash предоставляет способ передачи временных примитивных типов (String, Array, Hash) между действиями. Но вы пытаетесь отправить флэш-уведомление в качестве параметров url_redirection. Просто объявите

flash[:notice] = "some msg"

до вашего перенаправления.

http://api.rubyonrails.org/classes/ActionDispatch/Flash.html

person Irfandi Achmad    schedule 28.11.2017
comment
это все еще не работает, сэр, я изменил код по вашему совету - person Muhammad Rahmatullah; 28.11.2017