before_filter

by Mafeng at almost 8 years ago, last updated at almost 8 years ago
G

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。