这个lambda路由约束在做什么?

时间:2014-10-10 03:42:21

标签: ruby-on-rails-3 rails-routing

我在Split gem的说明中遇到了这段代码。

为了限制对仪表板路线的访问,他们建议:

match "/split" => Split::Dashboard, :anchor => false, :constraints => lambda { |request|
  request.env['warden'].authenticated? # are we authenticated?
  request.env['warden'].authenticate! # authenticate if not already
  request.env['warden'].user.admin?
}

我知道:约束键使得如果lambda返回false,那么路由不可用(至少,这就是我的想法)。

但是第一线有什么意义呢?第二个?我不明白为什么调用authenticated?方法会做任何事情。 authenticate!做了什么?

0 个答案:

没有答案