我有一个小型的sinatra应用程序,我正在使用机架式闪存进行“未登录”警报。设置非常简单,检查会话并在没有会话时返回错误消息。
我发现整件事情很有气质。闪烁显示在我的本地服务器上,但根本没有显示在我的遥控器上。我已经通过代码和示例多次,似乎无法找到错误。路线和模板如下:
get '/item/new' do
if session?
erb :new_item
else
flash[:error] = 'not logged in'
redirect '/'
end
end
并且查看
<% if flash[:error] %>
<div id="flash-message">
<%= flash[:error] %>
</div>
<% end %>
我有机架式闪存和会话设置:
use Rack::Flash, :sweep => true
use Rack::Session::Cookie
任何想法都非常感激。
答案 0 :(得分:2)
您是否尝试过使用sinatra-flash?我没有真正尝试过机架式闪光灯,但sinatra-flash一直对我有用。
答案 1 :(得分:1)
从闪存中检索值时,会删除它。那么当你做“如果flash [:error]”你可能正在检索它?用吗?检查是否有东西。
答案 2 :(得分:1)
由于来自<FlashHash @values={} @cache={}>
的{{1}}基本上是哈希,您只需使用rack-flash
来检查是否存在密钥/消息。查看示例:
#has?
我知道这有点晚了,但我希望它有所帮助。