Hen*_*dge 50 ruby-on-rails before-filter
我很难在过滤器之前使用我最近从1.9(?)升级到2.3.11的Rails应用程序.为了尝试调试它,我在控制器中放了一个before_filter:
before_filter :false_filter
Run Code Online (Sandbox Code Playgroud)
以及application_controller.rb中的以下内容:
def false_filter
puts "false filter running"
false
end
Run Code Online (Sandbox Code Playgroud)
然后我从cucumber/webrat或浏览器调用该方法,并且在调用过滤器时(我可以看到puts输出消息),过滤器链不会被终止.
我想知道是否有一些尚未生成的样板代码.任何人都可以建议去哪里看看?
mu *_*ort 96
没有注意到前置过滤器的返回值.如果你想停止处理,你必须从过滤器中渲染一些东西,或者从精细指南中重定向到其他地方:
如果前置过滤器呈现或重定向,则操作将不会运行.如果计划在该过滤器之后运行其他过滤器,则它们也会被取消.
5.2.0指南中显示了相同的文本.
这种行为确实有意义,如果过滤器链没有完成(即中途停止过滤)那么你最终会调用控制器方法,而事情的设置方式并不像他们期望的那样,这只会引起痛苦,痛苦和困惑,这一点都不友好或有趣.
归档时间: |
|
查看次数: |
21695 次 |
最近记录: |