Executando verificação de segurança...
1

Em Ruby eu faria assim:

def mostrar_piramide(linhas)
  for linha in 1..linhas
    espacos = linhas - linha
    colunas = 2 * linha - 1
    puts ' ' * espacos + '#' * colunas
  end
end

puts "Digite a quantidade de linhas da pirâmide:"
linhas = gets.chomp.to_i

if linhas >= 1 && <= 8
  mostrar_piramide(linhas)
else
  puts 'Quantidade de linhas tem que ser entre 1 e 8'
end

Rodando

Digite a quantidade de linhas da pirâmide:
8

       #
      ###
     #####
    #######
   #########
  ###########
 #############
###############
Carregando publicação patrocinada...
2

Não querendo ser xaropão, mas ...

  • Está no enunciado (entre 1 e 8). O teu exemplo não faz essa checagem e aceita qualquer valor.
  • No enunciado diz: uma pirâmide e o exemplo mostra um triângulo retângulo. Aí o teu programa está correto e o enunciado está errado.
2