2010-02-09 47 views

回答

3

托马斯正确回答你的问题,而是一个方式做什么,我认为你的意思做(输出多行),你可以使用:

get '/' do 
    output =<<EOS 
Hello 
World 
EOS 
    output 
end 
4

纠正我,如果我错了,但我相信在平原红宝石,评估的最后一行是被返回了什么。

12

这与sinatra本身无关。它只是使用块的返回值,在ruby中,返回值是最后一个评估表达式,在你的情况下是“World”。这可能会为你工作:

在这种情况下,你只要你想尽可能多的字符串值添加到r和最后一个表达式将返回完整字符串“HelloWorld”的。

+4

不过,使用+每次都会生成一个新的字符串对象。尝试使用<<代替。 – Mereghost 2010-02-09 15:42:16

1

你可以使用一个换行字符来分隔行..

get '/' do 
"Hello\nWorld" 
end 
1

请勿将您的控制器与您的视图混淆。

什么,你可能在找这个是:

get '/' do 
    haml :hello_world 
end 

然后在views/hello_world.haml

Hello 
World 
0

我与马特同意。

如果你想要的话,你也可以用一个文件来使用该方法。

get '/' do 
    erb :hello_world 
end 

__END__

@@程序hello_world
你好
世界

我只是用我的控制器内看跌期权,以获得一些调试打印到stdout。