在共享托管服务器上运行Ruby on Rails应用程序的问题

时间:2010-05-26 09:57:37

标签: ruby-on-rails ruby mongrel

我在共享托管服务器上安装任何 Ruby On Rails应用时遇到问题。 Mongrel将html显示为所有页面的纯文本。任何应用程序都会出现问题,即使我创建了一个测试空应用程序并添加了一个脚手架视图而没有更改任何内容。

看起来Mongrel在尝试将Cookie放入响应标头时崩溃了。 HTTP标头看起来不完整,缺少Content-type和其他参数:

curl 127.0.0.1:12002/users -I
HTTP/1.1 200 OK
Connection: close
Date: Wed, 26 May 2010 09:46:50 GMT
Content-Length: 0

以下是mongrel.log的输出

Error calling Dispatcher.dispatch #<NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]>
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/cgi.rb:108:in `send_cookies'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/cgi.rb:136:in `out'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/http_response.rb:65:in `start'
红宝石1.8.7 rails 2.3.8 mongrel 1.1.5

这是link to the test page

有没有人见过这样的东西?

3 个答案:

答案 0 :(得分:2)

这个解决方法固定了我的: https://rails.lighthouseapp.com/projects/8994/tickets/4690#ticket-4690-23

它基本上是在config / initializers下添加这个mongrel.rb

http://gist.github.com/471663

答案 1 :(得分:1)

在我的情况下,使用“mongrel_rails”命令运行mongrel时出现了这个确切的问题。使用“script / server”命令(如果它存在,它也会启动mongrel)解决了这个问题。

也许您可以写信给您的网站托管服务提供商进行检查。

答案 2 :(得分:0)

我在这里发布了一个解决方案:

https://rails.lighthouseapp.com/projects/8994/tickets/4690

让我知道它是否适合您。

谢谢, 迈克C