javascript - Rails 使 flash[] 在 Javascript 重新加载时显示

标签 javascript ruby-on-rails ruby download reload

我有一个基于回形针上传和下载的应用程序。我的下载链接指向 Controller 中的下载操作,该操作被 Javascript 强制进入新窗口。然而,在这种情况下, Controller 还设置一些 flash[] 消息。除非我按 Ctrl+R,否则它们不会显示在主窗口中。我尝试在该窗口上使用 javascript location.reload 复制此内容,但 Flash 不显示。为什么 Javascript 重新加载与 Ctrl+R 不同?

最佳答案

在调用.reload()之前在 Controller 中设置Flash消息

def controller_action
  flash[:notice] = "You have been successfully uploaded an image"
  render :js => 'window.location.reload()'
end

注意:渲染:js reload() 正在客户端上基于初始 jquery $.post 请求对controller_action 进行评估,数据类型为:“script”。

关于javascript - Rails 使 flash[] 在 Javascript 重新加载时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651806/

相关文章:

javascript - 表单验证失败后 jQuery 不起作用

javascript - 该网站获取 "two different scroll speed"的解决方案是什么? (见里面的链接)

ruby-on-rails - Rails后台进程/数据结构

ruby-on-rails - Rails控制台和Pow中的环境变量

ruby-on-rails - Rails 无法识别真假

ruby - ruby 生成的子进程使用的 CPU

javascript - String.prototype.replace 不会替换 &times 字符

javascript - 在触摸开始时向主体添加类而不是 .scroll()

javascript - document.cookie 中的 .length 是什么意思

ruby - 在 Ruby 中将数组转换为散列的最佳方法是什么