Вары не обновляются, меняя их в сеансе - PullRequest
0 голосов
/ 30 июня 2019

У меня проблема с приложенным веб-приложением:

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 отображается на веб-странице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...