Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

erro de argumento

Bom dia

Resolvi praticar e fazer um programinha bem basico em ruby um sistema de login só que há um problema na hora de verificar o nome se ele existe dentro de uma lista ele dá o seguinte erro

C:/Users/Seven/Desktop/Cursos/ruby/projeto_alternativo.rb:12:in verifica_nome': wrong number of arguments (given 0, expected 1) (ArgumentError) from C:/Users/Seven/Desktop/Cursos/ruby/projeto_alternativo.rb:30:in'

Todas as vezes em que ele faz a verificação do nome

Sendo esse o código

def cabecalho
    puts "Bem vindo ao sistema S.I.D"
end

def login_nome
    puts "Por favor digite seu Login"
    puts "\n"
    nome = gets.strip
    nome
end

def verifica_nome nome

    nomes = ["admin"]

    if nomes.include? nome

        login_senha

    else

        puts "Usuário invalido,por favor verifique usuário ou efetue cadastro"
    end
end



cabecalho
login_nome
verifica_nome

Qual seria o problema?

2 respostas
solução!

Oi Rodrigo, tudo bem ?

O problema é que você esta chamando o metodo verifica_nome, e ele deve receber um argumento, ou seja deve passar um valor para o metodo, seu código pode ficar assim:

def cabecalho
    puts "Bem vindo ao sistema S.I.D"
end

def login_nome
    puts "Por favor digite seu Login"
    puts "\n"
    nome = gets.strip
    nome
end

def verifica_nome nome

    nomes = ["admin"]

    if nomes.include? nome

        puts "logado"

    else

        puts "Usuário invalido,por favor verifique usuário ou efetue cadastro"
    end
end



cabecalho
nome = login_nome //Armazenando o retorno do metodo
verifica_nome nome // passando o argumento para o metodo verifica_nome

Espero ter ajudado.

muito obrigado