这个代码不言自明。
这行得通...
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