在以下情况下,Rails不会抛出UnknownAction错误:除了/:在路由中仅使用选项

时间:2011-04-06 07:26:01

标签: ruby-on-rails routing

我的路线配置如下:

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

当用户尝试访问页面http://localhost/users时,rails应该抛出错误。我希望rails能够抛出ActionController::UnknownAction错误。

令我惊讶的是,Rails抛出ActionController::MethodNotAllowed错误。在路由配置中使用:except时会看到类似的行为。

我依靠ActionController::UnknownAction来显示自定义404页面。在上面的场景中,我最终显示了一个服务器错误页面。

可以通过从路由中删除:except/:only来解决此问题。我想知道是否有一个优雅的解决方案可以使用:except/:only选项。

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为在http://localhost/users操作的POST上可以使用create网址。因此,操作存在,但方法不正确。