我在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!
做了什么?