2010-11-19 3 views
1

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

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

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

+0

Вы пробовали mod_ruby? – auralbee

+0

Да, я установил libapache2-mod-ruby – StiveKnx

ответ

4

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

Когда запрос попадает в приложение Rails, он будет перенаправлен через маршрутизатор (см. Config/routes.rb), если вы хотите выполнить рубиновый код в приложении Rails, вам нужно будет сначала перенаправить его на контроллер.

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

rails generate scaffold/resource test 

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

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

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

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

0

scaney is right, и я добавлю добавочную точку.

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

0

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

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

Кроме того, вам потребуется подробный вывод с сервера разработки для отладки ваших приложений с рельсами.

0

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

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