我的控制器中有以下代码片段
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
Run Code Online (Sandbox Code Playgroud)
当我尝试在联系表单中显示flash消息时,它不会显示.我查找了可能的解决方案,但它们似乎不起作用.出了什么问题?
now*_*owk 16
您的控制器重定向到:action =>'contact'.确保为该操作呈现的模板具有闪存通知输出.
<%= flash[:message] %>
Run Code Online (Sandbox Code Playgroud)
此外,您可能希望使用render:action ... vs redirect_to:action ....为自己保存一个请求.
闪存哈希可以包含要在下一次渲染之前保存的任何消息集.脚手架通常使用flash [:notice]的内容作为通知消息.如果您没有使用脚手架来生成网页,则必须添加<%= flash[:notice]%>到您的视图中.
您正在控制器中设置flash [:message].因此,除非您的视图包含<%= flash[:message]%>某个地方,否则它不会显示在您的视图中的任何位置.
您可能的解决方案是更改控制器中所有出现的内容flash[:message],flash[:notice]或添加<%= flash[:message]%>到此操作可以呈现的任何视图.
| 归档时间: |
|
| 查看次数: |
21753 次 |
| 最近记录: |