在编程方面,我是个新手,我正尝试连接到带有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);