Ruby Sinatra不支持多条线路?

Ruby Sinatra不支持多条线路?,ruby,sinatra,Ruby,Sinatra,对于下面的代码,为什么只打印“World” get '/' do "Hello" "World" end 如果我错了,请纠正我,但我确实相信纯ruby,最后一行计算的结果就是返回的结果。如果我错了,请纠正我,但我确实相信纯ruby,最后一行计算的结果就是返回的结果。这与sinatra本身无关。它只使用块的返回值,在ruby中,返回值是最后一个计算的表达式,在您的例子中是“World”。这可能适合您: get '/' do r = "Hello" r += "World" end

对于下面的代码,为什么只打印“World”

get '/' do
 "Hello"
 "World"
end

如果我错了,请纠正我,但我确实相信纯ruby,最后一行计算的结果就是返回的结果。

如果我错了,请纠正我,但我确实相信纯ruby,最后一行计算的结果就是返回的结果。

这与sinatra本身无关。它只使用块的返回值,在ruby中,返回值是最后一个计算的表达式,在您的例子中是“World”。这可能适合您:

get '/' do
  r = "Hello"
  r += "World"
end

在这种情况下,您可以向
r
添加任意多的字符串值,最后一个表达式将返回完整的字符串“HelloWorld”。

这与sinatra本身无关。它只使用块的返回值,在ruby中,返回值是最后一个计算的表达式,在您的例子中是“World”。这可能适合您:

get '/' do
  r = "Hello"
  r += "World"
end

在这种情况下,您可以向
r
添加任意多的字符串值,最后一个表达式将返回完整的字符串“HelloWorld”。

您可以使用换行符分隔行

get '/' do
"Hello\nWorld"
end

可以使用换行符分隔行

get '/' do
"Hello\nWorld"
end

Tomas正确地回答了您的问题,但要实现我认为您想做的事情(输出多行),您可以使用:

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

output=Tomas正确地回答了您的问题,但要完成我认为您想做的事情(输出多行),您可以使用以下方法:

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

输出=不要将控制器与视图混淆

您可能正在寻找的是:

get '/' do
  haml :hello_world
end
然后在
views/hello\u world.haml

Hello
World

不要将控制器与视图混淆

您可能正在寻找的是:

get '/' do
  haml :hello_world
end
然后在
views/hello\u world.haml

Hello
World
我同意马特的看法

如果您愿意,您也可以对一个文件使用该方法

 get '/' do
   erb :hello_world
 end
__结束__

@@你好_world
你好
世界

我只是在控制器中使用puts将一些调试打印到标准输出。

我同意Matt的观点

如果您愿意,您也可以对一个文件使用该方法

 get '/' do
   erb :hello_world
 end
__结束__

@@你好_world
你好
世界


我只是在控制器中使用puts将一些调试打印到标准输出。

不过,每次使用+都会生成一个新的字符串对象。尝试使用Still,每次使用+都会生成一个新的字符串对象。试用