Рельсы 5 флэш-сообщение не работает с redirect_to

голоса
0
# users_controller.rb

def create
    @user = User.new(name: params[:name],
      email: params[:email],
      password: params[:password],
      password_confirmation: params[:password_confirmation])
    if @user.save
      # successfully saved
      flash[:success] = Sign up success. WELCOME! # problem
      redirect_to user_path(@user.id)
    else
      @error_messages = @user.errors.full_messages
      flash[:danger] = Sign up failed.
      render 'new'
    end
    debugger
  end

Привет, Я использую Rails 5.2.0, Ruby 2.4.1 и работающих на окружающую среду Cloud9 AWS. Это код о контроллере для страницы регистрации. Как вы видите, контроллер принимает информацию из HTML - формы и сделать переменную @user, и сохранить его , когда он удовлетворяет условие я сделал в приложении / модели / user.rb . Я использовал отладчик , чтобы проверить , если есть вспышка [: успех] хорошо, и отладчик говорит

(byebug) flash
#<ActionDispatch::Flash::FlashHash:0x007f90180a8fe8 @discard=#<Set: {}>, @flashes={success=>Sign up success. WELCOME!}, @now=nil>

так что я могу знать, есть вспышка сообщение.

Я хочу показать знак вверх сообщение успеха на этой странице перенаправлены. Но это не работает, как я ожидал.

<!-- This is the page when sign up succeed, using semantic-ui -->

<% flash.each do |key, value| %>
    <% if key=='success' %>
        <div class=ui positive message>
            <i class=close icon></i>
            <div class=header><%= value %></div>
            <p>HALLO</p>
        </div>
    <% end %>
<% end %>

Этот код не делает ничего на странице, что пошло не так с этим кодом? Я уже провел более 3 часов, чтобы выяснить решение, а также прочитать о подобных случаях на StackOverflow, но не решить мою проблему.

Я что-то пропустил?

Задан 02/09/2018 в 05:23
источник пользователем
На других языках...                            


1 ответов

голоса
0

Я добавил флэш-код на мой application.html.erb

<%= debug(flash) if Rails.env.development? %>
<% flash.each do |key, value| %>
  <% if key=='success' %>
    <div class="alert alert-success" role="alert">
      <i class="close icon"></i>
      <div class="header"><%= value %></div>
      <p>HALLO</p>
    </div>
  <% end %>
<% end %>

Скриншот здесь введите описание изображения здесь

Ответил 02/09/2018 в 05:50
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more