我正在使用控制器状态:
flash[:notice] = 'message'
redirect_to(controller: 'item', action: 'list')
我不知道为什么通知没有出现。
我试过并检查过很多东西:
flash.keep
flash.keep[:notice] = 'message'
flash[:notice]
可与render
redirect_to(controller: 'item', action: 'list', notice: 'message')
flash.now[:notice] = "Hello world"
flash.now['foo'] = "Hello world"
在视图中显示<%= flash['foo'] %>
我在布局中添加了以下代码。当控制器方法具有相同名称的视图时,flash [:notice]正常工作。当我尝试到达另一个没有视图的控制器时会发生问题。
<% if !flash[:notice].blank? %>
<div class="notice">
<%= flash[:notice] %>
</div>
<% end %>
<% if !flash[:alert].blank? %>
<div class="alert">
<%= flash[:alert] %>
</div>
<% end %>
有人可以帮忙吗?
的信息:
答案 0 :(得分:5)
Railsguide:http://guides.rubyonrails.org/action_controller_overview.html#the-flash
这应该完全正常:
flash[:notice] = "My message"
redirect_to root_url
或者:
redirect_to root_url, notice: "Hello world"
但是,您也可能忘记在视图中渲染通知。因此,您没有看到任何通知。
例如,您的视图中应该包含以下内容:
<% if flash[:notice] %>
<p class="notice"><%= flash[:notice] %></p>
<% end %>
答案 1 :(得分:0)
尝试使用
flash.now['foo'] = "Hello world"
答案 2 :(得分:0)
我不知道发生了什么。
我更新到ruby 2.0.0并且它刚刚开始工作......