When developing and deploying Rails applications, it is recommended to use versioning software (e.g. Subversion or Git) plus the Rails deployment program Capistrano.
Especially with large projects, versioning software makes it much easier to maintain the rails application. Since all application components that are subject to the developing process are stored centrally in the repository of the versioning application, a clear definition exists of what the current version is and how it can be retrieved.
For the individual designer or programmer, the developing process consists of a sequence of identical cycles: checking out, editing, testing, checking in.
Capistrano deploys your web application to the target systems such as the staging or live server. For this, it uses the current version of the web application located in the repository of the versioning application and a couple of standard Unix programs such as ssh.
Capistrano uses a configuration file to determine the actions to perform. The initial configuration for a Rails project can be generated with Capistrano itself. The generated configuration is suitable for the classical development situations and can easily be adapted or extended by an administrator.