导轨通知没有出现

时间:2014-06-04 07:22:37

标签: ruby-on-rails flash model-view-controller ruby-on-rails-4

我在Rails 4中使用Bootstrap

这是我在我的控制器中的创建操作:

  def create
    @contest = Contest.new(contest_params) 
    if @contest.save
      flash[:notice] = "Contest saved successfully"
        redirect_to @contest
    else
        redirect_to root_path, :notice => 'Project not saved'
    end
  end

我提交表格时怎么没有通知?有什么我想念的吗?我是一个初学者,但却无法弄清楚这一点。

我的布局中已经有以下内容:

  <body>
    <p class="notice"><%= flash[:notice] %></p>
      <p class="alert"><%= flash[:alert] %></p>

    <%= render 'layouts/header' %>

      <%= yield %>

    <%= render 'layouts/footer' %>

  </body>

3 个答案:

答案 0 :(得分:1)

Read about the flash。您必须在html视图中显示Flash内容,最好是在布局中。

<html>
  <body>
    <% flash.each do |name, msg| -%>
      <%= content_tag :div, msg, class: name %>
    <% end -%>
  </body>
</html>

答案 1 :(得分:0)

在html视图中的<%= flash[:notice] %>中设置root_path

答案 2 :(得分:0)

尝试这样:

 flash[:notice] = 'Project saved successfully'
 redirect_to about_path
在某些版本中,

使用闪存重定向已被破坏。 如果您想尝试解决方法:

redirect_to url, :flash => { :notice => "notice" }

还可以修改您的布局

删除布局标题,以防它发生冲突。

 <body>
     <p class="notice"><%= flash[:notice] %></p>
      <p class="alert"><%= flash[:alert] %></p>

      <%= yield %>

    <%= render 'layouts/footer' %>

  </body>