如何"之前做"除了一对夫妇以外的其他每条路

时间:2014-08-14 11:03:07

标签: ruby sinatra

好的,这是交易。我需要检查用户是否在每次获取或发布请求之前登录,除了登录,注册和归属路由。

现在,我想要检查的每条路线上都有以下代码。

redirect '/' if !check_login?

我检查了文档是否有这样做的方法,到目前为止我只得到了它并且它没有用。

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

有什么方法可以完成这项工作吗?请告诉我。

1 个答案:

答案 0 :(得分:1)

您可以使用负前瞻路线:

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

这将匹配除//login/signup之外的所有路线。