2012-02-24 3 views
3

Я пытаюсь запустить скрипт ruby ​​cgi.rb точно так же, как этот: http://pine.fm/LearnToProgram/?ShowTutorialCode=true из приложения Ruby on Rails, чтобы получить результат точно так же, как этот: http://pine.fm/LearnToProgram/, но внутри веб-приложения Rails.Как запустить скрипт CGI Ruby внутри Ruby on Rails?

Как я могу это сделать?

+0

Я бы пошел с стойкой вместо cgi – farnoy

+0

Я тоже, но это устаревшее требование. – Darme

+0

Обратите внимание, что скрипты CGI [считаются тихими небезопасными и не рекомендуются для использования] (http://www.w3.org/Security/faq/wwwsf4.html) –

ответ

0

Я не уверен, но что-то, как это должно быть правильное решение (не проверено):

match '/that.cgi' => proc { |app| Rack::Handler::CGI.run app } 

Как Rails использует стойку, поддерживает монтаж его применения на маршрутизаторе. Я не уверен, однако, об использовании Rack::Handler::CGI, это очень плохо документировано.

+0

К сожалению, это не работает. Это позволило мне загрузить файл cgi.rb вместо его запуска. Может быть, я должен поместить его в каталог bin, а не публичный, но тогда вы можете рассказать мне, как я могу сказать Rack, где находится файл для запуска соответствующего маршрута? – Darme

+0

Прошу прощения, я честно не знаю ни одного примера использования cgi с рельсами. Нет документации для 'Rack :: Handler :: CGI' (только методы и т. Д.), А также есть направляющие для маршрутизации маршрутизации, которые описывают' lambda {| env | [200, «Content-Type: text», «test»]} ', только это; ( – farnoy

+0

Спасибо, в любом случае! Я сейчас ищу альтернативу. – Darme

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