我是Ruby的新手,只想要一个可以找到素数和打印的网页。就是这样。我想用Sinatra框架来做。这是我的代码:
#require 'prime'
require 'sinatra'
def primes(size)
arr=(0..size).to_a
arr[0]=nil
arr[1]=nil
max=size
(size/2+1).times do |n|
if(arr[n]!=nil) then
cnt=2*n
while cnt <= max do
arr[cnt]=nil
cnt+=n
end
end
end
arr.compact!
end
set :port, 8080
set :static, true
set :public_folder, "static"
set :views, "views"
get '/' do
#return 'Hello world'
return puts primes(10)
end
我通过http://localhost:8080/
运行此脚本,但我什么都没看到。只是一个空白页面。具有相同脚本的Hello World工作正常。 primes
函数也很完美,我通过命令行测试过。我做错了什么?
答案 0 :(得分:1)
问题是行return puts primes(10)
。
puts
只是将输出放到STDOUT(控制台)而不是HTTP响应(网页内容)。此外,我仍然认为将数组返回给Sinatra是一个问题,因为它使用数组传递有关响应的其他数据,所以如果你想测试这个脚本,如果你将上面提到的行更改为:
素数(10).to_s
to_s
将您的数组转换为字符串。