API Get Request to pull data from an online database
My approach to your code:

# If this data isn't going to change, using constants would be good enough
HEADERS = { 'x-rapidapi-host' =&gt; ENV['HOST'],
            'x-rapidapi-key' =&gt; ENV['API_KEY'] }.freeze

def self.get_game_details(game_selection)
  # If Game is an ActiveRecord class, probably you should modify this to look
  # for the specific record instead of loading everything with .all
  # If is just a PORO, forget what I said.
  game = Game.all[game_selection.to_i - 1]
  return if game.description.present?

  response = RestClient.get("#{DETAIL_URL}#{slug}", HEADERS)
  data = JSON.parse(response.body)
  game.details = data
end

class Game
  ALLOWED_RATINGS = %w[recommended exceptional meh skip].freeze

  # Moved most of the assigning logic into the Game class. This is debatible as
  # I could use a Service class or another pattern for this, but as I don't
  # know your code's nature, to me looks like the quickest way.
  def details=(data)
    self.description = data['description']
    self.released = data['released']
    # .presence will return nil for blank strings, empty arrays, etc, then with
    # || you will default the value to 0, as:
    #
    #   nil || 0 # =&gt; 0
    self.metacritic_rating = data['metacritic'].presence || 0

    data['ratings'].each { |rating| self.rating = rating }
  end

  def rating=(rating)
    # .send method can run any method of this class, so better to check if the
    # value is valid first
    return unless ALLOWED_RATINGS.include? rating['title']

    send("#{rating['title']}_rating=", rating['percent'].presence || 0.0)
  end
end