加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

控制器 – 如何在Rails 3.2中正确使用Flash消息

发布时间:2020-12-15 07:24:15 所属栏目:百科 来源:网络整理
导读:当使用Twitter-Bootstrap的样式不正确地提交表单时,我试图简单地呈现flash消息. 我显然遗漏了一些东西,因为我一直收到以下错误: TypeError in NewslettersController#createcan't convert Symbol into String 代码如下 视图 div class="footer_newsletter_c
当使用Twitter-Bootstrap的样式不正确地提交表单时,我试图简单地呈现flash消息.

我显然遗漏了一些东西,因为我一直收到以下错误:

TypeError in NewslettersController#create

can't convert Symbol into String

代码如下

视图

<div class="footer_newsletter_container">
            <%= image_tag("envelope.png",:border=>0,:class => '') %>&nbsp;&nbsp;Sign up for our newsletter</br></br>
            <%= simple_form_for Newsletter.new do |f| %>
              <%= f.input :email,:label => false,:placeholder => 'Enter Your Email Address',class: "floatleft" %><%= f.button :submit,'Submit',class: "btn floatleft" %>
             <% end %>
            <%= render "layouts/messages" %>
        </div>

局部

<% flash.each do |name,msg| %>
  <div class="alert alert-<%= name == :notice ? "success" : "error" %>">
    <a class="close" data-dismiss="alert">&#215;</a>
    <%= content_tag :div,msg,:id => "flash_#{name}" if msg.is_a?(String) %>
  </div>
<% end %>

调节器

class NewslettersController < ApplicationController

  def create
      @newsletter = Newsletter.new(params[:newsletter])
      if @newsletter.save
        redirect_to :back,notice: "You have been added to our newsletter."
      else
        redirect_to :back,flash[:error] = "Oops,something went wrong. Please try again"
      end
  end

  def destroy
    @newsletter = Newsletter.find(params[:id])
    @newsletter.destroy
  end
end

解决方法

您的错误行应如下所示:

redirect_to :back,flash: {error: "Oops,something went wrong. Please try again"}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读