Ruby 如何";“在做之前”;除了一对夫妇,其他路线都有吗?

Ruby 如何";“在做之前”;除了一对夫妇,其他路线都有吗?,ruby,sinatra,Ruby,Sinatra,好的,就这么定了。我需要在每个get或post请求之前检查用户是否登录,除了登录、注册和回家路线 现在,我要检查的每条路线都有下面的代码 redirect '/' if !check_login? 我查了一下文档,想找到一个方法,到目前为止,我只找到了这个,但没有用 before do, except => ['/','/login','/signup'] if request.request_method == "POST" redirect '/' if !ch

好的,就这么定了。我需要在每个get或post请求之前检查用户是否登录,除了登录、注册和回家路线

现在,我要检查的每条路线都有下面的代码

redirect '/' if !check_login?
我查了一下文档,想找到一个方法,到目前为止,我只找到了这个,但没有用

before do, except => ['/','/login','/signup']
   if request.request_method == "POST"
        redirect '/' if !check_login?
   end
end

有什么办法完成这件事吗?请让我知道。

您可以使用反向前瞻路线:

before %r{^(?!(/|/login|/signup)$)} do
   if request.request_method == "POST"
        redirect '/' if !check_login?
   end
end

这将匹配除
/
/login
/signup

之外的所有路由。您的语法是错误的,除了=>['/'、'/login'、'/signup']do…
-但是除了条件之外没有
。你在看什么有这个的医生?