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

Ruby On Rails Flash.each creating curly brackets on page, not going away

我目前正在 Rails 上 Ruby 的课程并且进展顺利,但是当我开始 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

成功与危险是bootstrap类顺便说一句...

在我的页面上令人不寒而栗的胭脂{}之上,我的消息已发送通知下方出现了一个{"success"=>"Message Sent"}...我很困惑,虽然我可以就这样忍受它,我不想在我的第一个 rails 应用程序上花一半时间。感谢所有帮助。我将 link 该网站,以便您可以看到我在说什么,我将尽可能长时间地离开服务器 运行,要查看{成功 => 消息},只需填写一个假名电子邮件和评论,然后单击提交...非常感谢

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

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

必须是

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

由于您不打算输出每个方法的 return 值,因此您必须去掉 ERB 输出标签。

您现在在输出中看到的是此方法的 return 值,其中包含闪存值的内部 Ruby 结构。