gpt4 book ai didi

ruby-on-rails - 有没有办法强制 before_filter 总是最后执行?

转载 作者:行者123 更新时间:2023-12-03 16:09:35 26 4
gpt4 key购买 nike

我想在 Controller 中定义一个 before_filter,但总是让它最后执行。

我知道 append_before_filter,但我想在一个模块中指定这个过滤器,其他类也可能稍后添加其他 before_filters。

有没有办法做到这一点?

最佳答案

这是一个简单的模块,它允许在完整的 before_filters 集之后执行任意代码。稍加工作,您就可以将其清理干净,以便创建一个特殊的队列 after_before_filters在这里执行(具有适当的停止行为,等等)。

module OneLastFilterModule

def self.included(base)
base.class_eval do

def perform_action_without_filters_with_one_last_filter

#
# do "final" before_filter work here
#

perform_action_without_filters_without_one_last_filter
end
alias_method_chain :perform_action_without_filters, :one_last_filter

end
end

end

请注意,您应该小心这样做,因为 Controller 本身可能会根据声明顺序对过滤器排序做出假设。

关于ruby-on-rails - 有没有办法强制 before_filter 总是最后执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1118445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com