我仍然是服务器端脚本的新手,并尝试自己一点点ruby给我写小帮手并学习一些新东西。
我目前正在尝试编写一个小型ruby应用程序,它将特定文件夹中所有图像的json文件发送到我的页面,我可以使用它们在js中进一步处理它们。
我阅读了很多关于ruby和rails的介绍,并建议将机架视为服务器和应用程序之间的轻量级通信器。
虽然ruby部分工作正常,但我很难理解如何发送生成的JSON作为对未来ajax调用的反应(例如)。希望有人能给我一些提示或资料来寻求进一步的了解。谢谢!
require 'json'
class listImages
def call(env)
imageDir = Dir.chdir("./img");
files = Dir.glob("img*")
n = 0
tempHash = {}
files.each do |i|
tempHash["img#{n}"] = i
n += 1
end
File.open("temp.json","w") do |f|
f.write(tempHash.to_json)
end
[200,{"Content-Type" => "application/javascript"}, ["temp.json"]]
end
puts "All done!"
end
run listImages.new
if $0 == __FILE__
require 'rack'
Rack::Handler::WEBrick.run MyApp.new
end
答案 0 :(得分:3)
在发送之前,您不必将JSON保存到文件中。直接发送:
[200, {"Content-Type" => "application/json"}, [tempHash.to_json]]
使用当前代码,您只发送字符串"temp.json"
。
那就是说,你的其余代码看起来有点混乱/不符合Ruby编码标准:
class ListImages
开始您的类名,而不是class listImages
。image_dir
,而不是imageDir
。puts "All done!"
语句在方法定义之外,并在加载类时提前调用。ListImages
,但在代码的最后一行中,您引用的是MyApp
。