Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Ruby - metody

Zdravím, mám tu ruby kod, kde clovek skrz vyber z menu dokaze delat ruzny veci, podle toho co si vybere. Vsechno fungovalo dobre dokud sem nenapsal tu metodu ohledne mazani studentu. Od te doby vzdycky kdyz zadavam studenty tak neni mozny z toho cyklu vyskocit, coz moc nechapu, jelikoz predtim to fungovalo. Taky bych potreboval poradit jak predat ty metode delete_student to pole studentu. U toho vypisu to jde, ale tady z nejakeho duvodu ne. Díky moc za radu, podotykam ze v ruby sem zacatecnik

#encoding: UTF-8

# knihovna metod

def enter_name # overeni jmena
 name = "" 
 while (name.length < 3)
    name = gets.strip.capitalize
    puts "Jméno musí být delší než dva znaky!" if (name.length < 3)    
  end
 return name 
end

def get_student # vstup studenta
  puts "Zadejte jméno studenta:"
  firstname = enter_name
  puts "Zadejte příjmení studenta:"
  surname = enter_name
    return {
      "firstname" => firstname,    
      "surname" => surname
    }
end

def ask_continue # overeni pokracovani
  puts "Přejete si pokračovat v zadávání? [A/N]"
  answ = gets.strip.upcase 
  if answ == "a"
    return true
  else
    return false  
  end
end

def print_students(list) # vystup studentu
  i = 0
  list.each do |student|
    i += 1
    puts "#{i}. " + student["firstname"] + " " + student["surname"]
  end
end

students = []
continue = true

def delete_student(student)
  puts "Zadejte číslo studenta, kterého chcete z databáze vymazat:"
  i = gets.strip
  del_firstname = students[i-1][0]
  del_surname = students[i-1][1]
  students.delete_at(i-1)
  puts "Vymazána položka #{del_firstname} #{del_surname} "
  
end



# //knihovna metod


  a = ""
  puts "Vítejte v Zadávani studentu 1.5"
  puts "Zadejte číslo od jedné do čtyř\n 1.Zadání studentů\n 2.Mazání studentů\n 3.Výpis studentů\n 4.Konec programu "  
  until a == "4"
    a = gets.strip.to_s
    
      if a =="1"
        while continue 
          new_student = get_student
          students << new_student
          continue = ask_continue
        end      
      elsif a == "2"
        delete_student(students)
      elsif a == "3"
        print_students(students)       
      end
  end 
puts "Děkujeme za použití našeho programu"

Předmět Autor Datum
toto vyzera podozrivo.... answ = gets.strip.upcase if answ == "a" vstup od uzivatela skonvertujes… poslední
emem 24.10.2012 09:07
emem

Zpět do poradny Odpovědět na původní otázku Nahoru