【问题标题】:Flash notice in Ruby on RailsRuby on Rails 中的 Flash 通知
【发布时间】:2018-04-04 12:11:48
【问题描述】:

很抱歉这个问题,但我是 RoR 的真正初学者,所以请耐心等待,因为我正在学习课程,但我并没有真正理解课程内容创建者所解释的内容。


在 1 个控制器中,有几个动作:

    flash[:notice]= "Article was successfully <some different text with each action>"


在 app/views/layouts/_messages.html.erb 中

<% flash.each do |name, msg| %>
  <ul>
    <li><%= msg %></li>
  </ul>
<% end %>


在 app/views/layouts/application.html.erb 中

<%= render 'layouts/messages' %>

课程创建者解释说我需要一个循环,因为它是一个数组数组?我如何从代码中看出它是其中之一?感谢您的帮助以及循环如何工作,因为它每次都只是 flash[name]="message (like a hash)?谢谢。

【问题讨论】:

  • 我不知道那门课程是什么或确切的解释是什么,但如果 flash 是来自 rails 的东西,那么它肯定 不是 数组数组.

标签: ruby-on-rails


【解决方案1】:

flash 提供了一种在动作之间传递临时原始类型(字符串、数组、哈希)的方法。你放在闪光灯里的任何东西都会暴露在下一个动作中,然后被清除。这是进行通知和警报的好方法,例如在重定向到显示操作之前设置 flash[:notice] = "Post successfully created" 的创建操作,然后可以将 Flash 公开到其模板。实际上,曝光是自动完成的。

<% flash.each do |name, msg| %>
  <ul>
    <li><%= msg %></li>
  </ul>
<% end %>

在上面,name 基本上是一种 flash 消息。有不同类型的闪光,如通知、警报等。

在这条快讯中

flash[:notice]= "Article was successfully <some different text with each action>"

notice 是 flash 的类型,“Artice was ....”实际上是一条消息

按以下格式创建哈希

{notice: "Article was successfully "}

message type 用于为不同的消息类型设置适当的 css。例如在警报闪烁中,我们需要以红色显示消息,如果成功则需要以绿色显示消息。

如果您想检查每个名称和消息,您可以使用以下代码打印该名称和消息

<% flash.each do |name, msg| %>
  <% puts name %>
  <% puts msg %>
  <ul>
    <li><%= msg %></li>
  </ul>
<% end %>

如果您想了解更多关于闪信的信息,请查看this link

【讨论】:

  • 您能否建议我如何执行此操作-“如果您想检查每个名称和消息,您可以使用以下代码打印该名称和消息”
  • @Mark 你可以在rails服务器日志中查看
  • 我做到了。但它没有显示 _messages 中呈现的内容。我在这里附上回购链接并重申我的问题。 github.com/cheese1884/testror - 我也阅读了 Vishal 的评论,但我不确定 100% 是否回答了我的问题。服务器日志justpaste.it/1jc3b
  • 重申以防我不清楚我是如何措辞的。每个循环都在从 app/views/layouts/application.html.erb 调用的部分 testror/app/views/layouts/_messages.html.erb 中,只要 app/views/articles/ 中的文件发生 CRUD,就会呈现部分不明白为什么需要 .each 当它只是 1 个键值对时
猜你喜欢
  • 2013-06-10
  • 2011-07-08
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
相关资源
最近更新 更多