Ruby on Rails,before_filter和prepend_before_filter排序是?

nop*_*ole 20 ruby-on-rails before-filter filter

在以下示例中,

before_filter :foo
before_filter :bar
before_filter :wah
prepend_before_filter :heehee
prepend_before_filter :haha
Run Code Online (Sandbox Code Playgroud)

那么执行订单将是:

haha, heehee, foo, bar, wah?   <-- note that haha is actually before heehee
Run Code Online (Sandbox Code Playgroud)

有没有理由不首先列出haha,heehee首先是实际使用prepend

mar*_*ark 27

据我所知,这是为了解决类继承,你无法定义before_filter的顺序:

ApplicationController < ActionController::Base    
  before_filter :do_this_first    
  #....
end

SomeController < ApplicationController    
  before_filter :do_this_second
  #.... 
end
Run Code Online (Sandbox Code Playgroud)

除非您使用prepend_before_filter,否则这两个定义的方法都没有首选项.