在以下示例中,

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

并且有理由不首先列出hahaheehee而是实际使用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/

10-10 11:01