【发布时间】:2018-03-10 19:23:52
【问题描述】:
我有一个 Ruby 脚本:
require 'uri'
require 'net/http'
require 'openssl'
require 'json'
require 'pp'
require 'opal'
require 'ostruct'
url = URI("MY URI")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'MY AUTH'
request["cache-control"] = 'no-cache'
response = http.request(request)
result = JSON.parse(response.body)
if response.code == "200"
result.each do |doc|
# puts doc
print doc ["id"]
print " "
print doc ["is_completed"]
print " "
print doc ["name"]
print "\n"
end
else
puts "error"
end
这工作正常。
我所做的是:
1) 安装 Sinatra
2) 我能够运行一个 ruby 文件并看到 localhost 显示一些东西。
我需要做什么
- 将上述脚本的结果(我正在解析的一些 api 数据)显示到 localhost html 页面上。
如前所述,我有 Sinatra gem,只是在 localhost 网站上显示了一个简单的“hello world”。我正在寻找的主要内容是如何在网站上显示上述脚本的结果。
提前致谢。
更新:我的代码设置如下,
require 'sinatra'
get '/' go
code = "<%= MY ENTIRE CODE I POSTED ABOVE %>"
erb code
end
当我访问 localhost 时,我得到了 API 调用的整个响应,它位于“result”变量中。 “打印”语句仍显示在执行脚本的终端上。
所以现在的问题是,我如何将特定数据发送到网页。比如在“打印”语句中。谢谢。希望这很清楚。
【问题讨论】:
-
您是否尝试过阅读有关呈现 HTML 页面的文档? sinatrarb.com/intro.html
-
"Ruby" 不是首字母缩写词,因此不需要全部大写。
-
@nicooga 感谢您将我指向该站点。看起来我能够做到这一点:
coderequire 'sinatra' get '/' go code = "" erb code endcode我相信这会让我想到另一个问题. API 结果的整体现在显示在 localhost 站点上。这太棒了 !!!至少我做到了。但是在代码中,看跌期权正在终端上显示。如何绕过在网站上显示放置而不是 API 响应的整个结果?希望这是有道理的.... -
请edit您的问题反映您到目前为止(使用代码)所做的工作以及您的新问题是什么。