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