假设在我的 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