What's the difference between rack app vs. rails app?

Sam Kong picture Sam Kong · Jun 3, 2011 · Viewed 8.7k times · Source

I uploaded my rails 2.3.8 app to DreamHost and got an error about rack version incompatibility. I issued a support ticket and the service guy recommended that I delete config.ru.

That solved the problem. But I wonder what that would affect.

Is it ok that a rails app goes without config.ru?

Answer

Brian Donovan picture Brian Donovan · Jun 3, 2011

A Rack app is a web app written in Ruby that uses the Rack project. A really simple Hello World config.ru example is like so:

class HelloWorld
  def call(env)
    [200, {'Content-Type' => 'text/plain'}, ['Hello World!']]
  end
end

run HelloWorld.new

Rails 2.3+ uses Rack as the basis for its HTTP handling, but some hosting providers might handle Rails specially and may not support running Rails as a Rack app. That seems to be the case with DreamHost for Rails 2.3.8, at least as you've specified your gem requirements.