假设在我的 Rails Controller 中,我有一个方法 set_one()
,它将通过 before_filter
调用。这个方法是在 Controller 操作之前每次都被调用,还是在整个 Controller 中运行一次?如果它是一次性的,那么这意味着它创建的实例变量将在整个 Controller 中可用。我认为 Controller 操作是无状态的。如果它在所有操作之前只运行一次,这是否有助于弥合差距?
def set_one
# do really complex processing and set the variable @one.
@one = 1;
end
提前致谢。 :)
最佳答案
before_filter
将为 Controller 的每个请求调用该方法。您可以将其设置为仅针对某些操作运行:
before_filter :authorize, :only => :delete
甚至阻止它在特定操作中运行:
before_filter :authorize, :except => [:index, :show]
顺便说一句,before_filter
的新语法是 before_action
关于ruby-on-rails - 在 Rails 中, Controller 的前置过滤器中调用的方法是否会针对每个操作运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22801233/