在编程方面我是一个全新的东西,我正在尝试使用ruby on rails连接到其他API,因为它似乎是一个很好的选择。
在我尝试连接到API之前,我只想弄清楚如何从网页运行脚本,但是当我在浏览器中导航到它时,它只是试图保存.rb文件。我在文件中的代码是:
puts "hello world"
我将.rb文件上传到我的网络服务器并转到了URL,它只是尝试保存文件。抱歉这个愚蠢的问题,但我无法弄明白该怎么做!
答案 0 :(得分:4)
通常,要运行这样的简单命令,您可以通过终端运行ruby脚本:
ruby /path/to/ruby/script.rb
否则,如果您坚持为此目的使用网络服务器(或者,如果您的用例需要),您应该查看基于ruby的简单Web服务器/框架,如rack,{{3}等等。
特别是在机架中,您可以保存以下文件(例如:hello.rb):
require 'rubygems'
require 'rack'
def application(env)
[200, {"Content-Type" => "text/html"}, "Hello world."]
end
Rack::Handler::Mongrel.run method(:application), :Port => 9292
然后,您可以使用终端运行上述文件:
ruby /path/to/hello.rb
并且,这将创建一个端口为9292的本地Web服务器,您可以在http://127.0.0.1:9292/
打开上面的页面,页面会显示:Hello world.
答案 1 :(得分:2)
您需要一台应用服务器才能投放网页。看看sinatra,rails和rack。
答案 2 :(得分:2)
经典的Web服务器(如Apache,nginx,Tomcat等)完全按照您的描述执行,并执行许多其他功能。要运行ruby脚本,您需要一个Ruby应用程序服务器,并且Web服务器需要将请求反向代理到该服务器。绝对可以在Rails上学习一些教程,你会看到很多例子。
答案 3 :(得分:0)
如果要在客户端(而不是在服务器上)运行Ruby脚本,可以使用Ruby-to-JavaScript编译器,例如Opal或ruby2js。
例如,Opal将puts "hello world"
翻译为
/* Generated by Opal 0.11.0 */
(function(Opal) {
var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice;
Opal.add_stubs(['$puts']);
return self.$puts("hello world")
})(Opal);