2

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

4

2 回答 2

3

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

在我看来,这是一件好事。在控制器中具有身份验证逻辑是一个众所周知的约定。

于 2008-12-10T09:57:23.117 回答
3

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

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

map.geocode 'geocode/:postalcode', :controller => 'geocode',
              :action => 'show', :requirements => { :postalcode => /\d{5}(-\d{4})?/ }
于 2008-12-10T10:20:09.297 回答