轨道闪烁,现在在after_action内



这个代码不言自明。

这行得通...

class SomeController < ApplicationController
  def index
    flash.now[:alert] = 'Something got borked!'
  end
end

这不会(flash是空的)...

class SomeController < ApplicationController
  after_action :test_flash
  def index
  end
  def test_flash
    flash.now[:alert] = 'Something got borked!'
  end
end

使用 Rails 4.0.2, Ruby 2.1.0

有人想吗?

index操作栏结束时,操作栏仅呈现new页面,因为您没有指定任何不同内容。 after_action在呈现索引页后执行,即,它添加一个回调,该回调将在索引操作的执行完成后调用。因此,test_flash没有效果,因为它为时已晚,索引页已经呈现。

编辑:

如果要在渲染之前调用test_flash,则可以重写render方法并执行以下操作:

  def render *args
    test_flash
    super
  end

相关内容

  • 没有找到相关文章

最新更新