在 rails 中,控制器的 before 筛选器中调用的方法是否针对每个操作运行



假设在我的 rails 控制器中,我有一个方法set_one()将通过 before_filter 调用。此方法是每次在控制器操作之前调用,还是在整个控制器中运行的一次性操作?如果它是一次性的,那么这意味着它创建的实例变量将在整个控制器中可用。我认为控制器操作是无状态的。如果在所有操作之前只运行一次,这是否有助于弥合差距?

def set_one
 # do really complex processing and set the variable @one. 
 @one = 1;
end

提前谢谢。 :)

before_filter将为控制器的每个请求调用该方法。您可以将其设置为仅针对某些操作运行:

before_filter :authorize, :only => :delete

甚至阻止它在特定操作中运行:

before_filter :authorize, :except => [:index, :show]

顺便说一句,before_filter的新语法before_action

相关内容

  • 没有找到相关文章