Rails 5 Flash消息不适用于redirect_to

时间:2018-09-02 05:23:32

标签: ruby-on-rails ruby cloud9

Glide.with(imageNews.getContext())
                .load(item.image_url)
                .into(imageNews);

嗨,我正在使用Rails 5.2.0,ruby 2.4.1并在AWS cloud9环境中工作。 这是有关注册页面控制器的代码。如您所见,控制器从HTML表单中获取信息,并创建一个@user变量,并在满足我在< em> app / models / user.rb 。我使用调试器很好地测试了Flash [:success],调试器说

# 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

所以我可以知道有一条即时消息。

我想在该重定向的页面上显示注册成功消息。但这不像我预期的那样。

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

此代码在页面上不显示任何内容,此代码出了什么问题? 我已经花了3个多小时来找出解决方案,还阅读了关于stackoverflow的类似案例,但这并不能解决我的问题。

我想念什么吗?

1 个答案:

答案 0 :(得分:-1)

我将Flash代码添加到了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 %>

屏幕截图在这里 enter image description here