2009-04-17 7 views
0

J'ai essayé de créer un fichier test.rb en le plaçant dans le répertoire public puis en l'appelant comme http://localhost:3000/test.rb mais cela ne semble pas fonctionner. Il pense que j'essaye de télécharger le fichier. Qu'est-ce que j'oublie ici? le petit script est ci-dessous:Comment écrire des CGI Ruby sur Rails sous Windows

#!/usr/local/bin/ ruby 
print "HTTP/1.0 200 OK\r\n" 
print "Content-type: text/html\r\n\r\n" 
print "<html><body>Hello World!</body></html>\r\n" 
+0

Qu'est-ce que vous essayez de faire? Pourquoi voudriez-vous écrire un CGI si vous utilisez déjà Rails? – Petros

+0

Parfois, je veux juste écrire un CGI rapide et ne pas faire face à un tas de choses MVC etc ... – jtruelove

+0

Donc, ne pas traiter avec MVC. Vous avez seulement besoin de M si vous avez besoin d'une table. V est votre "CGI" et C fournit juste un crochet pour l'URL. À moins que votre serveur Web ne comprenne les fichiers .rb (et c'est quelque chose d'un Saint-Graal), alors ce que vous essayez ne fonctionnera pas. –

Répondre

1

Il y a un petit serveur démon http que j'utilise pour ce genre de chose. Je n'ai jamais entendu que vous pouvez configurer l'un des navigateurs pour exécuter le script pour vous, donc vous êtes probablement coincé avec une configuration similaire à la mienne:

Vous pouvez trouver shttpd (maintenant appelé mongo, d'après les regards de celui-ci) au sourceforge. Le fichier de configuration que j'utilise pour mes applications Ruby ressemble à ceci:

# SHTTPD web server configuration file. 
# Lines starting with '#' and empty lines are ignored. 
# For detailed description, visit http://shttpd.sourceforge.net/shttpd.1.txt 

#platform-specific stuff 
root   c:\main\src\worker\http 
systray   no 
access_log  logs\shttpd_access_log.txt 
error_log  logs\shttpd_error_log.txt 
cgi_env   RUBYLIB=c:\main\src\worker;c:\main\src\worker\lib 
cgi_interp  c:\InstantRails\ruby\bin\ruby.exe 


#platform-dependant stuff 
ports   2001 
cgi_ext   rb 
threads   5 
index_files  index.rb 

Si vous avez d'autres questions, simplement mettre à jour et je vais essayer de garder un oeil sur le fil.

+0

Ouais j'ai vu quelques trucs en ligne sur InstantRails qui paquet apache, ruby, et mysql ensemble mais il ne semblait pas que le projet avait été mis à jour depuis 2007. Vous pouvez définir n'importe quel ruby ​​pour l'option cgi_interp non? Il ya aussi des choses comme http://rubyforge.org/projects/fcgi/ fast cgi pour ruby ​​pour apache qui n'a pas été mis à jour beaucoup non plus. Quel est l'avantage de la mangouste, est-ce juste léger comparé à la mise en place d'apache et à l'utilisation du rubis pour les cgis? – jtruelove

+0

Aussi quelle version de mangouste utilisez-vous? http://code.google.com/p/mongoose/ J'ai téléchargé la version 2.4 mais j'ai du mal à faire travailler ruby ​​cgis dessus. La page de résumé semble indiquer qu'elle n'est pas supportée. – jtruelove