Flash消息在Rails 3.2.2中不起作用

时间:2012-03-06 13:47:13

标签: ruby-on-rails-3 erb

这让我疯了。我有一个新的Rails 3.2.2资产管理应用程序。

这是我的控制器:

class AssetsController < ApplicationController
  respond_to :html, :json, :xml

  def index
    respond_with(@assets = Asset.all)
  end

  def show
    @asset = Asset.find(params[:id])
    respond_with @asset
  end

  def new
    @asset = Asset.new
    respond_with @asset
  end

  def create
    @asset = Asset.new(params[:asset])
    if @asset.save
      flash[:notice] = "Asset created successfully"
    end
    respond_with @asset
  end

  def edit
    @asset = Asset.find(params[:id])
    respond_with @asset
  end

  def update
    @asset = Asset.find(params[:id])
    if @asset.update_attributes(params[:asset])
      flash[:notice] = "Asset updated successfully"
    end
    respond_with @asset
  end

  def destroy
    # tbd...
  end

end

以下是我application.html.erb

的一部分
<% flash.each do |name, msg| %>
    <div class="alert alert-<%= name == :notice ? "success" : "error" %>">
        <%= msg %>
    </div>
<% end %>

但是,闪光灯始终为空。即使资产模型成功更新后也是如此。

当我调试flash对象时,这就是我得到的:

--- !ruby/object:ActionDispatch::Flash::FlashHash
used: !ruby/object:Set
  hash: {}
closed: false
flashes: {}
now: 

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的代码对我来说很好。 Rails上的这个bug report看起来与你的非常相似,所以可能值得更新到最新版本的Rails? (据报道,Bug已在过去24小时内修复)