如何从网页运行ruby脚本



在编程方面,我是个新手,我正尝试连接到带有ruby on rails的rest API,因为这似乎是一个很好的选择。

在我尝试连接到API之前,我只是想知道如何从网页运行脚本,但当我在浏览器中导航到.rb文件时,它只是试图保存它。我在文件中的代码是:

puts "hello world"

我把.rb文件上传到我的网络服务器,然后转到URL,它只是试图保存文件。抱歉问了这个愚蠢的问题,但我不知道怎么做!

通常,要运行这样的简单命令,可以通过终端运行ruby脚本:

ruby /path/to/ruby/script.rb

否则,如果你坚持使用网络服务器来达到这种目的(或者,如果你的用例需要这样做),你应该看看简单的基于ruby的网络服务器/框架,比如rack、sinatra等。

特别是,在机架中,您可以保存以下文件(比如: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.

您需要一个应用程序服务器来为网页提供服务。看看sinatra,铁轨和支架。

http://m.onkey.org/ruby-on-rack-1-hello-rack

一个经典的web服务器(如Apache、nginx、Tomcat等)可以完全执行您所描述的功能,还可以执行许多其他功能。要运行ruby脚本,您需要一个ruby应用程序服务器,web服务器需要将代理请求反向到该服务器。一定要学习一些关于Rails的教程,你会看到大量的例子。

如果你想在客户端(而不是服务器上)运行Ruby脚本,你可以使用Ruby到JavaScript编译器,如Opal或ruby2js,或者Ruby到WebAssembly编译器,如run.rb。

例如,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);

最新更新