[英]Sinatra does not support multiple lines?
对于以下代码,为什么只打印“世界”
get '/' do
"Hello"
"World"
end
这与sinatra本身无关。 它仅使用块的返回值,而在ruby中,返回值是最后计算的表达式,在您的情况下为“ World”。 这可能对您有用:
get '/' do
r = "Hello"
r += "World"
end
在这种情况下,您可以根据需要向r
添加尽可能多的字符串值,最后一个表达式将返回完整的字符串“ HelloWorld”。
如果我错了,请纠正我,但我确实相信纯红宝石,最后评估的行是返回的内容。
Tomas正确回答了您的问题,但是一种执行我认为要执行的操作的方式(输出多行),可以使用:
get '/' do
output =<<EOS
Hello
World
EOS
output
end
您可以使用换行符来分隔行。
get '/' do
"Hello\nWorld"
end
不要将您的控制器与您的视图混淆。
您可能正在寻找的是:
get '/' do
haml :hello_world
end
然后在views/hello_world.haml
:
Hello
World
我同意马特的观点。
如果您愿意,也可以对一个文件使用该方法。
get '/' do
erb :hello_world
end
__结束__
@@你好,世界
你好
世界
我只是在控制器内使用puts来将一些调试打印到STDOUT。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.