我的Rails应用程序中有一个非常简单的routes.rb
:
ActionController::Routing::Routes.draw do |map|
map.resources :tags
end
用script/server
启动我的应用程序并将浏览器指向localhost:3000/tags/
会产生
ActionController::MethodNotAllowed
Only get and post requests are allowed.
然而,用script/server webrick
启动我的应用程序就解决了这个问题。
稍后:如果重要的话,我将在OSX 10.5.5上运行Mongrel 1.1.5。
- 使用"rake routes|grep tag"检查生成的路由是否存在问题
- 通过tail-f log/development.log检查正在调用的实际方法以及使用它调用的谓词
这应该会带来任何明显的问题。
我在旧版本的mongrel中看到过这种情况,但1.1.5并不旧。当浏览器向URL双重发布请求时,我也看到了一些类似的问题。这是在这里发生的吗?
我需要更多的信息来帮助你:你在用什么浏览器?你在Firefox上使用firebug插件吗?除了MethodNotAllowed异常之外,服务器日志对请求有什么说明?
需要检查的一些事项:
- 有时您需要重新启动服务器才能加载新的路由
- TagsController存在吗
- TagsController中的索引操作是否存在
我很想看看这里的堆栈痕迹。
您是否检查了与form_for相关的代码,以检查是否有拼写错误?当你运行rake路线时,一切都好吗?我以前看到过这个问题,它与form_for参数中的一个拼写错误有关。
你更新你的混血儿了吗?gem更新混血儿?
你检查项目日志了吗?log*.log?
问候,
Victor