Sinatra脚本无法正常工作

时间:2015-07-24 13:12:14

标签: ruby sinatra

我是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函数也很完美,我通过命令行测试过。我做错了什么?

1 个答案:

答案 0 :(得分:1)

问题是行return puts primes(10)

puts只是将输出放到STDOUT(控制台)而不是HTTP响应(网页内容)。此外,我仍然认为将数组返回给Sinatra是一个问题,因为它使用数组传递有关响应的其他数据,所以如果你想测试这个脚本,如果你将上面提到的行更改为:

  

素数(10).to_s

to_s将您的数组转换为字符串。