Ruby On Rails Flash.each在页面上创建大括号,不会消失

时间:2016-07-01 14:40:20

标签: ruby-on-rails ruby ruby-on-rails-4.2

我目前正在学习Ruby on Rails的课程,而且进展顺利,但是当我开始做一个flash.each(下面的代码)时,我会在我的实际页面上显示{},只有当我删除了代码行消失了......我不知道为什么

<%= flash.each do |key, value| %> 
  <%= content_tag :div, value, class: "alert alert-#{key}" %>
<% end %>

这是我们在Application.html.erb文件中使用此

连接的代码
class ContactsController < ApplicationController
  def new
    @contact = Contact.new
  end

  def create
    @contact = Contact.new(contact_params)

    if @contact.save
      flash[:success] = "Message Sent"
      redirect_to new_contact_path
    else 
      flash[:danger] = "Message not sent ID10T ERROR occured"
      redirect_to new_contact_path

    end
  end
end

成功和危险是自助课程btw ...

在我的页面上只有冷却的胭脂{}上,我得到{&#34;成功&#34; =&gt;&#34;消息已发送&#34;}出现在我的消息发送通知下面...我我很难过,虽然我可以像这样生活,我不想在我的第一个轨道应用程序上走一半..所有帮助都很感激..我将链接网站,以便你可以看到我在说什么,我会离开服务器尽可能长时间运行,以查看{success =&gt;消息}只需填写假名称电子邮件和评论,然后单击提交...非常感谢

https://udemy-rails-coder-nohashkang.c9users.io/contacts/new

1 个答案:

答案 0 :(得分:2)

<%= flash.each do |key, value| %> 

必须是

<% flash.each do |key, value| %> 

由于您不打算输出每个方法的返回值,因此必须删除ERB输出标记。

您在输出中看到的是此方法的返回值,其中包含flash值的内部Ruby结构。