如何将选定的按钮存储在参数中?

How to store selected button in params?

我是编程新手,我正在编写一个简单的石头剪刀布游戏。有 3 个带有图片的按钮,取决于玩家点击哪个按钮,下一页应该显示该图片。换句话说,如果玩家点击 "rock" 按钮,那么它应该显示在下一页。 问题是我不知道如何存储选定的按钮,以便它可以显示在“/results”rout 中。


(play.erb)

        <div class="pbox-1">
        <form action=/choice method="post">
          <input type="image" src="images/rock.jpg"  name="rock" />
        </form>
        </div>
        <div class="pbox-2">
        <form action=/choice method="post">
          <input type="image" src="images/paper.jpg"  name="paper" />
        </form>
        </div>
        <div class="pbox-3">
        <form action=/choice method="post">
          <input type="image" src="images/scissors.jpg"  name="scissors" />
        </form>
        </div>
(controller)

require 'sinatra/base'
require './lib/game'
require './lib/player'

class Rps < Sinatra::Base
    enable :sessions

    get '/play' do
        erb :play
    end

    post '/choice' do
        redirect '/results'
    end

    get '/results' do
        erb :results
    end

    run! if app_file == [=11=]
end
(Player class)

require_relative 'game'

class Player
    attr_reader :name, :choice
    def initialize(name)
        @name = name
        @choice = nil
    end
    def make_choice(player_choice)
        @choice = player_choice
    end
end
(Game class)

require_relative 'player'

class Game
    attr_reader :players 
    def initialize(player_1)
        @players = player_1
    end
    def player_1
        @players
    end
    def player_1_choice
        player_1.choice
    end
end

您可以在每个表单中放置一个隐藏字段,例如:

<input type="hidden" name="choice" value="rock" />

然后在您的 post '/choice' 函数中,您可以使用 params[:choice] 访问它。