Rails 5 条闪现消息不适用于 redirect_to
Rails 5 flash message not working with redirect_to
# 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 并在 AWS cloud9 环境中工作。 这是关于注册页面控制器的代码。如你所见,控制器从HTML表单中获取信息并创建一个@user变量,并在它出现时保存它满足我在app/models/user.rb中做的条件。我用调试器测试是否有 flash[:success] 很好,调试器说
(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 个多小时来找出解决方案,还在 Whosebug 上阅读了类似的案例,但它并没有解决我的问题。
我是不是漏掉了什么?
我将闪存代码添加到我的 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 %>
截图在这里
# 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 并在 AWS cloud9 环境中工作。 这是关于注册页面控制器的代码。如你所见,控制器从HTML表单中获取信息并创建一个@user变量,并在它出现时保存它满足我在app/models/user.rb中做的条件。我用调试器测试是否有 flash[:success] 很好,调试器说
(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 个多小时来找出解决方案,还在 Whosebug 上阅读了类似的案例,但它并没有解决我的问题。
我是不是漏掉了什么?
我将闪存代码添加到我的 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 %>
截图在这里