what is the difference between unicorn and unicorn_rails?
So...what is the difference between unicorn and unicorn_rails When should I use one or another?
It is officially answered in http://www.engineyard.com/blog/2010/everything-you-need-to-know-about-unicorn/:
What is the unicorn executable? What is the unicorn_rails executable?
The unicorn executable is a Rack-only tool modeled after Rack’s “rackup” and is recommended for Rack applications. unicorn_rails was made to be an easier transition for users of pre-Rack versions of Rails. The manpage encourages Rails 3 users to use plain unicorn instead.
What’s the difference?
From the unicorn_rails manpage, some conventions of unicorn_rails are modeled after script/server found in Rails. It creates directories under “tmp” like script/server and the -E/–environment switch sets RAILS_ENV instead of RACK_ENV.
Apart from that, in my experience, some gems may need unicorn_rails in particular, like activeadmin (see this)
It is designed to help Rails 1.x and 2.y users transition to Rack, but it is NOT needed for Rails 3 applications. Rails 3 users are encouraged to use unicorn(1) instead of unicorn_rails(1). Users of Rails 1.x/2.y may also use unicorn(1) instead of unicorn_rails(1).