首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flash[:notice]在Rails中不工作

flash[:notice]在Rails中不工作
EN

Stack Overflow用户
提问于 2009-11-23 01:49:57
回答 4查看 24K关注 0票数 3

我的控制器中有以下代码片段

代码语言:javascript
复制
  def create
    @message = Message.new(params[:message])
    @message.message = h(@message.message)
    if @message.save
       flash[:message] = "Message Sent. Thank You for Contacting Me"
    else
       flash[:message] = "OOps Something went wrong"
    end
    redirect_to :action => 'contact'
  end

当我尝试在联系人表单中显示flash消息时,它不显示。我寻找了可能的解决方案,但它们似乎不起作用。你知道哪里出问题了吗?

EN

回答 4

Stack Overflow用户

发布于 2009-11-23 02:21:23

您的控制器正在重定向到:action => 'contact‘。确保为该操作呈现的模板具有flash通知输出。

代码语言:javascript
复制
<%= flash[:message] %>

此外,您可能希望使用render :Action...vs redirect_to :行动....给自己留一个请求。

票数 16
EN

Stack Overflow用户

发布于 2009-11-23 01:58:46

flash散列可以包含要保存到下一次呈现的任何消息集。脚手架通常使用flash:notice的内容作为通知消息。如果你没有使用脚手架来生成你的网页,你将不得不在你的视图中添加<%= flash[:notice]%>

您正在控制器中设置flash:message。因此,它不会出现在视图中的任何位置,除非视图中的某处包含<%= flash[:message]%>

您可能的解决方案是将控制器中所有出现的flash[:message]更改为flash[:notice],或者将<%= flash[:message]%>添加到此操作可以呈现的任何视图中。

票数 5
EN

Stack Overflow用户

发布于 2009-11-23 02:16:23

并不是说你不会尝试,但如果我是你,我会做一些事情,比如

代码语言:javascript
复制
<% if flash[:messsage].blank? %>
  <h1> flash hash is blank </h1>
<% end %>

如果你在你的浏览器中看到"flash哈希为空“,你就知道它是什么意思了。

编辑:-

文档中的一些内容“只需记住:它们在执行下一个操作时就会消失。”在你的控制器中试试这个

代码语言:javascript
复制
flash.keep(:message) #keep the flash entry available for the next action
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1779405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档