gpt4 book ai didi

ruby-on-rails - before_filter 不取消操作

转载 作者:行者123 更新时间:2023-12-02 03:42:07 26 4
gpt4 key购买 nike

我在最近从 1.9(?) 升级到 2.3.11 的 Rails 应用程序中使用过滤器之前遇到问题。为了尝试调试它,我在 Controller 中放置了一个 before_filter:

before_filter :false_filter

以及 application_controller.rb 中的以下内容:
def false_filter
puts "false filter running"
false
end

然后我从 cucumber /webrat 或浏览器调用该方法,当过滤器被调用时(我可以看到 puts 输出消息),过滤器链没有被终止。

我想知道是否有一些未生成的样板代码。任何人都可以建议在哪里看?

最佳答案

没有任何注意过滤器之前的返回值。如果你想停止处理,你必须从你的过滤器中渲染一些东西或重定向到其他地方,from the fine guide :

If a before filter renders or redirects, the action will not run. If there are additional filters scheduled to run after that filter they are also cancelled.



相同的文本出现在 5.2.0 guide 中.

这种行为是有道理的,如果过滤器链没有完成(即停止过滤部分通过),那么你最终会调用 Controller 方法,但事情没有按照他们期望的方式设置,这只会引起痛苦、痛苦和困惑,这一点都不友好或有趣。

关于ruby-on-rails - before_filter 不取消操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6353286/

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