2010-02-09 70 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。