Различные среды, включенные в Ruby on Rails
Может кто-нибудь объяснить мне, что такое среда Rails и что они делают? Я пытался исследовать себя, но ничего не смог найти. Из того, что я собираю, среда:
- развитие
- Продукция
- Тестовое задание
3 ответа
Из того, что вы предоставили в своем вопросе, кажется, что вы спрашиваете:
"В чем разница между каждой конфигурацией среды в Rails?"
Rails поставляется с 3 типами окружения. У каждого есть свой сервер, база данных и конфигурация. Смотрите Rails Guides: Configuration для получения дополнительной информации о доступных вам опциях.
Настройка среды
Чтобы настроить среду Rails, вам нужно ввести в командной строке:
export RAILS_ENV=<env>
куда <env>
может быть test
, development
, или же production
, Установка этой переменной среды имеет решающее значение, так как она будет определять, какие гемы установлены или какие env затрагиваются при запуске rails console
или же rails server
,
В конфигурацию входит набор гемов, используемый для приложения. Когда ты бежишь rails new
, вы найдете Gemfile с группами test
, development
, а также production
, Эти группы соответствуют среде, установленной в настоящее время. Когда среда установлена на один из них, работает bundle install
устанавливает все драгоценные камни, связанные с этой группой (и драгоценные камни, не перечисленные в группе).
Включенные среды
test
предназначен для запуска тестов / спецификаций. Эта база данных, скорее всего, будет голой, за исключением семян, которые вы можете вызвать перед запуском пакета. После того, как каждый тест завершен, база данных возвращается к своему состоянию до начала теста. Я не рекомендую запускать rails server
, поскольку выполнение тестов (через MiniTest или RSpec) сделает это за вас и закроет сервер, как только набор будет завершен.
development
позволяет вам "тестировать" ваше приложение с более крупной базой данных, обычно клоном производства. Это позволяет вам тестировать реальные реальные данные, не нарушая производство (версия, с которой столкнутся клиенты или конечные пользователи). Чтобы увидеть среду разработки в действии, измените RAILS_ENV
и запустить rails server
, Это хорошо для определения того, как вы хотите, чтобы ваши страницы выглядели (CSS, HTML). Хорошей практикой также является краткое "тестирование" своего приложения, когда вы проверяете, все ли выглядит хорошо и работает ли JavaScript.
production
зарезервировано для клиента и конечного пользователя. Конфигурация включает в себя фактический домен приложения, какие порты использовать, а также инициализаторы или задачи для запуска. Вы не хотите играть с вашей базой данных, так как это может повлиять на клиента. В идеале приложение должно работать как можно лучше, поскольку это считается вашим "конечным продуктом".
Каждое "окружение" - это просто конфиг. Вы можете запускать свое приложение в различных режимах, и эти режимы называются "средами", потому что они по-разному влияют на поведение приложения. В конечном счете, они просто конфиги.
Кстати, вы не могли выглядеть очень усердно, когда выглядело "везде", потому что я просто погуглил "окружение рельсов", и лучший результат был
http://guides.rubyonrails.org/configuring.html
что является официальным объяснением настройки среды рельсов.
Вот несколько хороших статей о Rails Environments
http://teotti.com/use-of-rails-environments/
а также
https://signalvnoise.com/posts/3535-beyond-the-default-rails-environments
удачи!!