Приложение rails может быть запущено в производственном режиме, вызывая rails server -e production
, хотя в 99% случаев вы будете обслуживать что-то вроде пассажира или тонкого вместо WEBrick, что означает, что есть другая команда для запуска сервера. (thin start -e production
например)
Это сложный вопрос, но лучшее место, где можно начать изучение различий, - это посмотреть конкретные файлы environment.rb
. Когда rails загружается, он начинается с файла среды, соответствующего вызываемой среде, то есть, если вы запускаете его в разработке, он начинается с загрузки файла development.rb
или, если вы работаете, он загружает файл production.rb
. Различия в средах в основном являются результатом этих различий в различных конфигурационных файлах среды.
По сути, если приложение Rails 3.1 находится в производственном режиме, то по умолчанию оно не будет компилировать ресурсы «на лету», и будет происходить большое кеширование, чего не происходит в разработке. Кроме того, когда вы получаете сообщения об ошибках, они регистрируются, но не отображаются для пользователя, вместо этого будет использоваться страница статической ошибки из вашего общего каталога.
Чтобы лучше понять это, я бы предложил прочитать соответствующие руководства по рельсам:
Руководство по инициализации Rails: http://guides.rubyonrails.org/initialization.html
Руководство по конфигурации Rails: http://guides.rubyonrails.org/configuring.html