无法让Sinatra Flash Gem正常工作

4

我正在尝试在表单成功提交后显示一个闪现通知。 在Rails中,我会在控制器中使用以下代码:

:notice => "Youve submitted the form"

我发现了Sinatra flash宝石,想在重定向后显示闪存消息。我安装了这个宝石并进行了如下设置:

myapp.rb:

require 'sinatra/flash'
enable :sessions

#form config
 )}
redirect '/success' # this is the hook after my form submission
end

get('/success') do
 flash[:success] = "Thanks for your email. I'll be in touch soon."
 erb :index 
end

发生的一切就是我被重定向到主页,没有闪存消息。查看文档,这是我需要做的全部内容。有人看到了不同的东西吗?


我不确定,但是你是否在你的index.*视图中添加了适当的代码?例如= flash - roman-roman
你能详细解释一下吗?我不太明白你的意思。 - Richlewis
1个回答

5

我将闪现通知移动到重定向之前,以便保存该消息:

flash[:notice] = "Thanks for your email. I'll be in touch soon."
redirect '/success'

get('/success') do
 erb :index 
end

在我看来,目前我将此置于顶部:

<div id='flash' class='notice'>
 <a class="close" data-dismiss="alert">&#215;</a>
 <%= flash[:notice] %>
</div>

这段代码需要一些样式,但是它能够正常工作。如果有更好的解决方案,请分享。


2
您还可以在视图中使用 styled_flash 助手来显示闪现消息。 - ian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接