虽然循环应该输出concated字符串,但只在控制台中输出而不输出concated?Ruby MongoDB Sinatra

虽然循环应该输出concated字符串,但只在控制台中输出而不输出concated?Ruby MongoDB Sinatra,ruby,mongodb,loops,while-loop,sinatra,Ruby,Mongodb,Loops,While Loop,Sinatra,我在一个数组中循环,我希望数组的每个部分都显示在我的浏览器中。虽然它会找到正确的条目并将它们放在控制台中,但不会在浏览器中显示它们。我可以让第一个或最后一个出现在屏幕上,但不是所有的都集中在一起 while x < entrysize do found = " " if entry = entries.shift firstname = entry["firstname"] lastname = entry["lastname"] number = e

我在一个数组中循环,我希望数组的每个部分都显示在我的浏览器中。虽然它会找到正确的条目并将它们放在控制台中,但不会在浏览器中显示它们。我可以让第一个或最后一个出现在屏幕上,但不是所有的都集中在一起

while x < entrysize do

  found = " "

  if entry = entries.shift

    firstname = entry["firstname"]
    lastname = entry["lastname"]
    number = entry["number"]
    x += 1

    found += "Found #{entrysize} entries: <br><br>Name: #{firstname} #{lastname}<br><br>Number: #{number}<br><br><a href='/'>Back</a><br>"
    puts found

  else
    #if there are no entries display this message
    "Sorry, no entries found!"
  end


end
found
而x
名称:{firstname}{lastname}

编号:{Number}



” 发现 其他的 #如果没有条目,则显示此消息 “对不起,找不到任何条目!” 结束 结束 建立
认为
put
会将字符串呈现给HTTP响应并最终呈现给浏览器,这是一个常见的错误。此代码仅将hello打印到控制台:

get '/' do
  puts 'hello, world!'
end
但是,您需要返回应该从
do。。。结束
块。由于Ruby将隐式返回最后一条语句的值,因此您可以编写:

get '/' do
  'hello, world!'
end

在您的特定情况下,问题是您在每次迭代(也是最后一次迭代)中都会用
覆盖找到的
。但是,您的代码也有不同的问题,我强烈建议您使用视图来构建HTML输出。

我必须将>found=“”放在while循环之外,这就马上完成了

请正确格式化您的代码!谢谢你的建议,但我痛苦地意识到这一点。我必须将>found=“”放在while循环之外,这马上就完成了!所以你毕竟帮助了我,谢谢你:)