Trilhos 5 mensagem flash não funciona com redirect_to

votos
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

Oi, eu estou usando Rails 5.2.0, rubi 2.4.1 e trabalhando em ambiente cloud9 AWS. Este é o código sobre controlador para página de inscrição. Como você vê, o controlador leva a informação de formulário HTML e fazer uma variável @user, e guardá-lo quando atende a condição que eu fiz em app / models / user.rb . Eu costumava depurador para testar se há de flash [: sucesso] bem, e depurador diz

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

para que eu possa saber que há uma mensagem flash.

Eu quero mostrar uma mensagem de sucesso inscrição na página redirecionada. Mas Ele não funciona como eu esperava.

<!-- 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 %>

Este código tornar nada na página, o que está errado com este código? Eu já gastou mais de 3 horas para descobrir a solução e também ler casos sobre semelhantes sobre stackoverflow, mas isso não resolveu o meu problema.

Estou esquecendo de algo?

Publicado 02/09/2018 em 05:23
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Eu adicionei o código flash para o meu 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 %>

Capturas de tela é aqui digite descrição da imagem aqui

Respondeu 02/09/2018 em 05:50
fonte usuário

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