为什么Mongrel无法获取正确的HTTP动词?

时间:2008-10-08 15:41:43

标签: ruby-on-rails routing mongrel

我的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。

4 个答案:

答案 0 :(得分:1)

  1. 检查您生成的路线是否存在“rake routes | grep tag”
  2. 的问题
  3. 检查正在调用的实际方法,并使用tail -f log / development.log调用它的动词
  4. 这应该会带来任何明显的问题。

答案 1 :(得分:0)

我已经看到这种情况发生在较旧版本的mongrel上,但1.1.5并不老。当浏览器将请求双重发布到URL时,我也看到了一些类似的问题。这是发生在这里吗?

我需要更多信息才能帮助您:您使用的浏览器是什么?你在Firefox上使用firebug插件吗?除了MethodNotAllowed异常之外,服务器日志对请求的说法是什么?

答案 2 :(得分:0)

要检查的事情:

  • 有时您需要重新启动服务器才能加载新路由。
  • TagsController存在?
  • TagsController中的索引操作是否存在?

我很想看到堆栈跟踪。

答案 3 :(得分:0)

您是否检查了与form_for相关的示例代码,以检查是否有拼写错误?当你运行rake路线时,一切都很好吗?之前我看过这个问题,它与form_for参数中的拼写错误有关。

你有没有更新你的杂种?宝石更新mongrel?

您检查了项目日志吗?日志* .LOG?

此致

维克多