In the following example,
before_filter :foo
bef开发者_如何学编程ore_filter :bar
before_filter :wah
prepend_before_filter :heehee
prepend_before_filter :haha
so then the execution orders will be:
haha, heehee, foo, bar, wah? <-- note that haha is actually before heehee
And is there a reason not to list haha and heehee first in the first place but actually use prepend?
To my knowledge this is to solve class inheritance where you cannot define the order of the before_filter:
ApplicationController < ActionController::Base
before_filter :do_this_first
#....
end
SomeController < ApplicationController
before_filter :do_this_second
#....
end
Here, neither of the methods defined will have preference unless you use a prepend_before_filter.
Looks like prepend_filter, in a queue of before_filters, it adds a filter in front of the queue. Hence, last come, first served.
加载中,请稍侯......
精彩评论