2008-12-10 76 views
2

我有一個特殊的網址,我希望只有幾個人有權訪問。我有一個超級用戶在app.yml中作爲數組存儲的列表。如何在routes.rb文件中的特定路由的requirements部分中使用此數組,以僅允許那些超級用戶訪問此路由?非常感謝。Rails:阻止用戶使用routes.rb

回答

3

不,你不能。 :requirements僅與路由參數有關。

在我看來,這是一件好事。在控制器中使用身份驗證邏輯是一個衆所周知的慣例。

3

就像佩德羅說的。認證邏輯應該在控制器代碼中。
查看before_filters,您可以在其中指定將在控制器運行之前調用(全部或指定)操作的方法。您可以使用這種方法來拒絕正在運行的操作。查找名爲Filter Chain Halting的部分here

:requirements用於指定要匹配的路由的部分URL的約束。通常指定正則表達式,如下所示。

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