У меня проблема с приложенным веб-приложением:
https://github.com/babahyaga/Hangman
Я пытаюсь создать приложение, которое играет в игру палача.
Я думаю, что проблема связана с сессиями, не переносящими переменные guessed_letters и secret_word.Код, используемый файлом main.rb, взят из файла lib / hangman.rb.Я не уверен, где я ошибся здесь.Кажется, что веб-приложение загружается и нормально функционирует, за исключением того, что никакие значения не будут отображаться для обновлений guessed_letters и secret_word.
Есть идеи?Я ценю любую помощь.
Я попытался рефакторинг как файла main.rb, так и файла lib / hangman.rb.
def add_to_guessed_letters(guess)
if @guessed_letters.any?(guess) then @guessed_letters << guess end
end
def display_letters
@guessed_letters.each do |guess|
@code.split("").each_with_index do |letter, index|
if guess == letter
@secret_word[index] = guess
end
end
end
end
get '/game' do
erb :game, :locals => {:game => session[:game],
:secret_word => session[:game].secret_word,
:wrong_answers => session[:game].wrong_answers,
:code => session[:game].code,
:guessed_letters => session[:game].guessed_letters}
end
post '/game' do
guessed_letter = params['guessed_letter']
#looks to see if a letter was guessed
#if !session[:game].code.split(//).any?(/[a-z][A-Z]/) then redirect to("/game") end
#looks to see if the letter has already been guessed or if the guess is correct length
if (!session[:game].guessed_letters.include?(guessed_letter) && guessed_letter.length == 1)
if session[:game].any_letters?(guessed_letter)
session[:game].display_letters
session[:game].add_to_guessed_letters(guessed_letter)
else
session[:game].guess_wrong
end
else
redirect to("/game")
end
erb :game, :locals => {:game => session[:game],
:guessed_letters => session[:game].guessed_letters,
:secret_word => session[:game].secret_word,
:wrong_answers => session[:game].wrong_answers,
:code => session[:game].code,
:guessed_letter => guessed_letter}
end
Нет сообщений об ошибках, vars просто не 't отображается на веб-странице