Ruby On Rails в Ubuntu + apache2 + Passenger - PullRequest
1 голос
/ 19 ноября 2010

Я пытаюсь начать программирование в ruby ​​на рельсах для сети. Я использую Ubuntu 10.04. Моя IDE - это NetBeans. Я установил все пакеты, необходимые для запуска ruby, rails. Мне нравится использовать apache для PHP, поэтому я решил продолжить установку Phusion Passenger с помощью apache. Я также настроил виртуальный хост для порта 3000 (я тоже изменил ports.conf).
Я думаю, что все настроено нормально, но я создаю новый проект в NetBeans (я сохранил в var / www, та же папка для файлов PHP) и открываю проект с помощью Firefox. Я создаю новый файл с именем test.rb в общей папке. Я запускаю этот test.rb, но Firefox попросит меня загрузить файл, вместо этого запустите его.

Я думаю, что ruby, рельсы полностью настроены. И я думаю, что нет никаких проблем с моими настройками apache2. Итак, как я могу запустить мои проекты ruby? Я могу запустить .erb, .rhtml, но вместо того, чтобы запустить код, он показывает мне код; s

Спасибо. (простите за английский)

Ответы [ 4 ]

4 голосов
/ 19 ноября 2010

Если вы находитесь в общедоступной папке приложения Rails, вы не можете запустить скрипт ruby ​​(не без явной ссылки на него вначале в другом месте вашего приложения, не то, что вы все равно должны это делать, это, вероятно, дыра в безопасности), егоне так, как PHP, где попадание в реальный файл отображает результат.

Когда запрос попадает в приложение Rails, он будет перенаправлен через маршрутизатор (см. config / rout.rb), если вы хотите выполнить код ruby ​​вВ Rails-приложении вам сначала нужно будет перенаправить его на контроллер.

Вы можете сделать это, выполнив команду

rails generate scaffold/resource test 

(только один из параметров scaffold или resource - этоНеобходимый)

Это создаст весь шаблонный код (и добавит маршруты в ваш файл маршрутов), который вам нужен, чтобы начать обслуживать запросы.

Только статические ресурсы (html, изображения и т. д.)обслуживаться через общую папку.Вот почему все CSS и JS хранятся в открытом доступе.

Если вы хотите написать приложение pury ruby, которое отвечает на запросы сервера, вам нужно написать его в своей собственной структуре приложения, а не вприложение Rails.

0 голосов
/ 19 ноября 2010

Ruby запускается не так, как вы запускаете PHP-скрипты. С Ruby и Rails вам нужно запустить сервер приложений, который выполняет ваш код. В случае с Rails это так же просто, как запустить rails server (в случае с Rails 3, ./script/server для Rails 2), когда вы находитесь в корневом каталоге проектов. Это запустит сервер, который работает на порту 3000, поэтому перейдите на http://localhost:3000/, чтобы просмотреть ваше приложение.

0 голосов
/ 19 ноября 2010

Я тоже использую Ubuntu для разработки на Rails.Для разработки лучше всего использовать сервер разработки.Я использую Passenger для производственной среды на хосте.

Использование Apache для запуска программы Rails, когда ее можно избежать, на самом деле отрицает цель «разделения интересов».Вам понадобится подробный вывод с сервера разработки для отладки приложений rails.

0 голосов
/ 19 ноября 2010

Скани прав, и я добавлю дополнительную точку.

/ var / www - это каталог, который Apache использует для обслуживания контента, а не рельсов. Вы можете использовать этот каталог для обслуживания контента, не относящегося к rails, с вашего веб-сервера, в то же время используя инфраструктуру rails для обслуживания содержимого rails. Чтобы настроить свой проект rails, запустите команду rails generate (для rails3), как показано на скейни (или выполните одно из многочисленных учебных пособий).

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