what is the difference between unicorn and unicorn_rails?

Luiz E. picture Luiz E. · Sep 7, 2012 · Viewed 9.6k times · Source

So...what is the difference between unicorn and unicorn_rails
When should I use one or another?

Answer

prusswan picture prusswan · Sep 8, 2012

It is officially answered in https://blog.engineyard.com/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)

Also, manpage:

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).