尝试根据条件显示不同的页面。当位于while循环内部时,erb:game只显示一个空页面,它在while循环之外正确显示,但是一旦你在表单中输入一个值,它就会自动将数字重置为0.我在这里缺少什么?
get "/" do
count = 5
number = params["number"].to_i
if number == 0
erb :index
else
letters = find(number)
while count > 0 do
guess = params["guess"]
if letters.include?guess
correct = check_guess(guess, letters)
else
count -= 1
end
disp = display(letters, correct)
erb :game, :locals => {:letters => letters, :disp => disp}
end
end
end
答案 0 :(得分:1)
你正在编写erb
行内循环。它不会起作用。实际上它没有意义。只有在整个循环完成后才会显示视图。因此,当视图呈现时,到那时count
的值为0
。
您无法在动作中渲染多个视图!你必须计算,然后最终渲染你的模板。