Rails:使用routes.rb阻止用户

时间:2008-12-10 09:49:47

标签: ruby-on-rails url-routing

我有一个特殊的网址,我希望只有少数人可以访问。我有一个在app.yml中存储为数组的超级用户列表。如何在routes.rb文件中的特定路由的requirements部分中使用此数组,以仅允许那些超级用户访问此路由?非常感谢。

2 个答案:

答案 0 :(得分:3)

像佩德罗说的那样..认证逻辑应该在控制器代码中 查看before_filters,您可以在其中指定在运行控制器之前(全部或指定)操作之前调用的方法。您可以使用此方法拒绝运行操作。查找名为Filter Chain Halting here

的部分

:requirements用于指定要匹配的路由的URL部分的约束。通常,正则表达式的指定如下所示。

map.geocode 'geocode/:postalcode', :controller => 'geocode',
              :action => 'show', :requirements => { :postalcode => /\d{5}(-\d{4})?/ }

答案 1 :(得分:3)

不,你不能。 :requirements仅与路由参数相关。

在我看来,这是一件好事。在控制器中具有认证逻辑是众所周知的惯例。