Ruby Frameworks - Запросить точку входа - PullRequest
3 голосов
/ 25 февраля 2011

Я изучаю рубин и смотрю на его рамки.Одна вещь, которую я не могу понять, это то, как фреймворки обрабатывают запросы в мире ruby.Копаясь глубже, я обнаружил, что есть промежуточное программное обеспечение под названием Rack, которое выполняет эту работу.

Итак, мои вопросы:

  • Как Rack обрабатывает HTTP-запрос?
  • Исходя из PHP, где есть известный файл "index.php" в качестве точки входа, что является правильным в мире рубинов?

Заранее спасибо.

1 Ответ

4 голосов
/ 25 февраля 2011

Из спецификации стойки:

Приложение Rack - это объект Ruby (не класс), который отвечает на вызов.Он принимает ровно один аргумент, среду и возвращает массив из ровно трех значений: состояние, заголовки и тело.

На практике общий способ запуска приложения в стойке определяется в конфигурации..ru файл.Если вы посмотрите в базовый каталог приложения rails, вы увидите его.В rails он включает config / environment.rb, который включает в себя config / application.rb, который включает в себя boot.rb, который включает гемы и еще много чего.С этого момента фреймворк начинает делать свое дело.

Общая идея с рельсами заключается в том, что диспетчер принимает любой запрос и решает, что с ним делать.Диспетчер может рассматриваться как эквивалент упомянутого вами index.php.

Способ доступа к файлу config.ru (или способ запуска приложения в стойке) зависит от способа развертывания приложения.Phusion Passenger, популярный модуль для apache и nginx, будет искать config.ru в корневом каталоге любого приложения, которое вы добавили в файл конфигурации сервера.

Это действительно зависит от варианта развертывания.Приложения Ruby могут запускаться через модули apache / nginx, напрямую через веб-серверы, написанные на ruby, и через CGI.

Ниже приведено описание различных способов развертывания веб-приложений из документации для пассажиров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...