我试图在padrino中创建一个前置过滤器链,看起来像这样看起来像
before do
set_current_user
track_order_ip
!current_user and pass
## don't allow the next filter other filter to run if no current user
customer_inactivity!
skip_enforce!
## so the theory is this if a users is is not enforced he should not be allowed to execute enforce! before filter
enforce!
end
现在所有过滤器都会在链中执行,但如果 current_user 不存在,我希望删除(即pass
)由此处理的过滤器链处理({{1代码
但是尝试在padrino中执行类似这样的操作会导致应用程序多次重定向同一路径,然后因以下错误而中断。
!current_user and pass
at
ArgumentError at /myaccount/users/authenticate
uncaught throw :pass
我觉得奇怪,我无法理解的是,为什么?它不在Padrino工作(因为我知道Padrino内部使用Sinatra),因为我确实在sinatra中编写了一个概念验证类似的应用程序(可以在here
上找到)并且似乎只是在没有任何问题的情况下开箱即用< / p>
最后here
padrino代码
现在任何人都可以给我一些指针,因为我在padrino中做错了,在概念验证中正确实现了sinatra app
由于