2011-04-06 11 views
0

使用唯一的選擇我有一個路由配置如下:Rails不扔UnknownAction錯誤時:/除外:在路線

map.resources :users, :only => [:new, :create, :edit, :update] 

當用戶試圖訪問該頁面http://localhost/users軌應該拋出一個錯誤。我期待軌道拋出ActionController::UnknownAction錯誤。

令我驚訝的是,Rails丟出ActionController::MethodNotAllowed錯誤。在路由配置中使用:except時會出現類似的行爲。

我依靠ActionController::UnknownAction顯示自定義404頁面。在上面的場景中,我最終顯示了一個服務器錯誤頁面。

該問題可以通過從路線中刪除:except/:only來解決。我想知道是否有一個優雅的解決方案可以與:except/:only選項一起使用。

回答

0

發生這種情況的原因是http://localhost/users URL在POST上可用於執行create操作。所以,這個動作是存在的,但是這個方法並不好。