2010-12-31 21 views
0

Я новичок в Ruby on Rails. Я стараюсь изучить его в книге Agile Web Development с использованием Rails. Я застрял, пытаясь понять концепции исполнения.рубин на рельсах исполнение

Я создал новый проект, используя rails_apps> rails demo. Книга попросила меня создать контроллер под названием Say (обратите внимание на капитал «S») и произошло следующее:

  1. там была папка под названием сказать (обратите внимание на нижний регистр «S») в папке называемые «взгляды»
  2. был файл контроллера:. say_controller»

затем я сделал запрос через http://localhost/say/hello я действительно смущает тот факт, что мой проект название демо нигде не в запросе что.. происходит, если я создаю другой контроллер, скажем, в другом проекте и сделаю тот же запрос?

И почему это говорит, что в запросе есть строчные буквы вместо капитала S? Что происходит за шторами здесь?

ответ

4

При запуске команды rails server запускается процесс, который предназначен только для конкретного приложения. Он видит запрос от браузера для этого приложения и обслуживает соответствующий контент.

Если вы сделали другое приложение, вы не сможете запустить его на том же порту одновременно с исходным приложением. Вам нужно будет запустить rails server -p NEW_PORT, где NEW_PORT отличается от уже запущенного рельса. Затем вы сможете получить доступ к приложению от http://localhost:NEW_PORT

Несколько серверов позволяют использовать одни и те же контроллеры в разных приложениях, поскольку теперь они являются полностью отдельными экземплярами.

+0

спасибо, что посмотрели. И в отношении этого, скажем, почему это происходит, а не капитал S? – CHID

+0

, так что, если мне нужно одновременно запускать несколько проектов, должен ли я продолжать поиск другого номера порта для каждого проекта? @codethis – CHID

+0

случай не имеет значения для приложений rails - вы можете использовать либо, но чаще всего имеют все нижестоящие URL-адреса. каждый экземпляр нуждается в другом номере порта, и вы можете запустить столько, сколько ваш компьютер позволит – zsalzbank

0

отрывая вопросы один за другим:

«Имя» вашего приложения (параметр вы предоставляете рельсы сценария) нигде не используется, для названия главного каталога, за исключением. Я нахожу, что это обеспечивает свободу не быть привязанным к выбранному имени.

Другой контроллер в другом проект будет полностью независим. Эти два проекта будут выполняться на разных портах (при использовании встроенного веб-сервера) или на разных путях (при использовании другого веб-сервера, такого как Apache.)

Капитализированные (и «верблюжие») по сравнению с некапитализированными именами важны в Rails , и просто продиктованы конвенцией. Вот сообщение с некоторыми примерами. http://itsignals.cascadia.com.au/?p=7

+0

спасибо. @dogweather – CHID

Смежные вопросы