【问题标题】:Why the `flash[:warning]` message is not displayed?为什么不显示`flash[:warning]`消息?
【发布时间】:2012-01-17 19:52:34
【问题描述】:

我正在使用 Rails 3.1.0,我想了解为什么即使我在 application.html.erb 文件中声明了 <%= content_tag( :div, flash[:warning]) %>,控制器操作中的以下代码也无法正确显示 flash[:warning] 消息。

flash[:warning] = "Warning message!"

respond_to do |format|
  format.html { redirect_to :root }
end

为什么不显示flash[:warning] 消息?重定向后如何显示?

附注我:我尝试使用flash.keep[:warning],但没有成功。


解决方案

问题是我在控制器操作中重定向了两次。


附注II:谁投反对票至少可以给出一些理由……

【问题讨论】:

  • 重定向如何在同一个控制器的操作中进行两次?
  • @sannankhalid - 我重定向到一个控制器操作,该操作又重定向到另一个控制器操作。

标签: ruby-on-rails ruby ruby-on-rails-3 session ruby-on-rails-3.1


【解决方案1】:

flash.now[:key] 将再次保存 flash 消息 key 以供一个请求尝试

flash.now[:warning] ='message'

然后在重定向后显示警告消息

<%= flash.now[:warning] %>

【讨论】:

  • 您的代码仍然不起作用。 顺便说一句flash.now 是否会创建“瞬态”闪存条目? (!)
  • 我解决了这个问题(阅读问题了解更多信息)。
【解决方案2】:

你有没有在你的布局/视图中写下这一行?如果没有,则将此代码写入您的布局文件中

<%= flash[:warning] || flash[:notice] || flash[:alert] %>

【讨论】:

  • 不,我没有。但是,如果我编写您的代码,它仍然无法正常工作。
  • 您为什么显示通知或警报?他正在存储带有警告键的消息。您的解决方案有很多错误可以向用户显示奇怪的消息
  • @Backo 你确定你在使用应用程序布局吗?如果没有,则在控制器顶部添加布局“应用程序”并重试。在您的应用程序布局中,您仍然需要编写
  • @Naveed 你知道“||”是什么意思吗符号 ?我猜不是。 :)
  • @sannankhalid - 我解决了问题(阅读问题了解更多信息)。
猜你喜欢
  • 1970-01-01
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
相关资源
最近更新 更多