ruby - 无法让 Sinatra Flash Gem 工作

标签 ruby sinatra alert

我正在尝试在成功提交表单后显示一条闪现通知。在 Rails 中,我会在 Controller 中使用类似这样的东西:

:notice => "Youve submitted the form"

我遇到了 Sinatra flash gem 并希望在重定向后显示一条 flash 消息。我像这样安装了 gem 和设置:

我的应用.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

所发生的只是我被重定向到没有任何闪现消息的索引页面。查看文档,这就是我所看到的我需要做的。有没有人看到任何不同之处?

最佳答案

我将 flash notice 移动到重定向之前,以便它可以保存消息:

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>

它需要一些样式但可以工作。如果有人有更好的解决方案,请分享。

关于ruby - 无法让 Sinatra Flash Gem 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14753782/

相关文章:

ruby - 如何使用 rake 运行指定目录中的所有 ruby​​ 文件

html - 使用 ruby​​ 和 sinatra 保存循环构建的 html 文本中的所有用户条目

ios - Swift - 添加按钮操作后无法从 TableView 重新加载数据

ruby - 西纳特拉 + Rack :Session:Pool

ruby - 将 Cucumber 与模块化 Sinatra 应用程序一起使用

javascript - 如何在 javascript 警报消息出现时重复播放声音并在警报消息消失时停止?

javascript - OnmouseMove 无法与 Chome 中的 SetTimeOut 和警报一起使用

ruby-on-rails - Rails 错误 "NoMethodError"- 我的第一个 ruby​​ 应用程序

ruby-on-rails - Rails 中的大小写不敏感

ruby - 如何使用 Ruby 在 Amazon Athena 上执行查询?