停止 computer_choice 以更改用户插入输入的所有时间

问题描述

我是编程新手,我正在尝试使用 ROR 构建一个简单的猜谜游戏,但我被卡住了。 用户始终插入输入(@question)@computer_choice 更改......我该如何解决这个问题?我尝试了一个 while 循环,但它没有用(或者我可能只是做错了 tbh)。 另外我知道我的代码看起来不太漂亮,所以如果你有任何关于如何重构的提示,那就太好了!非常感谢能帮助我的人!

这是我的 html.erb 文件...

<div class="container">
  <h1>GUESS WHO</h1>
  <% @characters.each do |character| %>
    <div>
      <img src="<%= character.img_url %>" class="avatar" alt="image of character">
      <%= character.name %>
    </div>
  <% end %>
  <form action="characters">
  <input  type="" placeholder="ask your question" name="user_input">
  <% if @question == "Hi" %>
    <h1>Let's play</h1>
  <% elsif @computer_choice[:sex].downcase.include?(@question) %>
    <h1>yes</h1> <h1><%= @computer_choice.name %></h1>
    <% elsif @computer_choice[:eyes].downcase.include?(@question) %>
    <h1>yes</h1> <h1><%= @computer_choice.name %></h1>
    <% elsif @computer_choice[:hair].downcase.include?(@question) %>
    <h1>yes</h1> <h1><%= @computer_choice.name %></h1>
    <% elsif @computer_choice[:characteristcs].downcase.include?(@question) %>
    <h1>yes</h1> <h1><%= @computer_choice.name %></h1>
  <% elsif @computer_choice[:name].downcase.include?(@question) %>
    <h1>Correct! Let's play again!</h1>
    <% else %>
    <h1>no</h1> <h1><%= @computer_choice.name %></h1>
  <% end %>
</div>

还有我的控制器...

class CharactersController < ApplicationController
  def index
    @characters = Character.all
    @computer_choice = @characters.sample
    @questions_left = 2
    unless params[:user_input].present? 
      @question = "Hi"
    else 
      @question = params[:user_input].downcase
    end
  end 

  def new
    @character = Character.new
  end

  def create
    @character = Character.new(character_params)
    if @character.save!
      redirect_to characters_path
    else
      render :new
    end
  end

  def character_params
    params.require(:character).permit(:name,:hair,:eyes,:img_url,:characteristcs,:sex)
  end
end

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)