在以下示例中,
before_filter :foo
before_filter :bar
before_filter :wah
prepend_before_filter :heehee
prepend_before_filter :haha
因此执行顺序为:
haha, heehee, foo, bar, wah? <-- note that haha is actually before heehee
并且有理由不首先列出
haha
和heehee
而是实际使用prepend
吗? 最佳答案
据我所知,这是为了解决类继承,而您无法定义before_filter的顺序:
ApplicationController < ActionController::Base
before_filter :do_this_first
#....
end
SomeController < ApplicationController
before_filter :do_this_second
#....
end
在此,除非您使用prepend_before_filter,否则定义的任何方法都不具有首选项。
关于ruby-on-rails - Ruby on Rails的before_filter和prepend_before_filter排序是?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3391840/