before_filter最常用于准备跨Action共享的数据,或是用户权力验证等.
class EventsControler < ApplicationController
before_filter :find_event, :only => :show
def show
end
protected
def find_event
@event = Event.find(params[:id])
end
end
Filter的顺序:
1. 当有多个Filter时,Rails是由上往下依序执行的。如果需要加到第一个执行,可以使用prepend_before_filter方法,同理也有prepend_after_filter和prepend_around_filter.
2. 如果需要取消从父类别继承过来的Filter,可以使用skip_before_filter :filter_method_name方法,同理也有skip_after_filter和skip_around_filter。