En mi programa Obtengo un error que dice ./ruby_camping.rb:91:in` -': nil no se puede forzar en Fixnum (TypeError) Lo que me gustaría hacer es a la caja de un invitado que acabo registrado aquí es el bloque de código para la parte de la caja:.`- ': nil no se puede forzar en Fixnum (TypeError)
def self.check_out
puts "Welcome to checkout!"
puts $camping.current_guests
puts " Here are the current guests, who do you want to checkout?!"
puts "State plot number "
plot = gets.chomp.to_i
guest = $camping.current_guests[plot-1]
puts "State the date for your checkout (a number bigger then " + guest.arrived.to_s + "): "
# it should not be possible for a guest to checkout before she has checked in
departureDate = gets.chomp.to_i
guestStayedDays = departureDate - guest.arrived #Days the guest has stayed
while (guestStayedDays < 1) do
puts "The date for checkout is not valid. The guest checked in " + guest.arrived.to_s
puts "Please state a new date."
departureDate = gets.chomp.to_i
guestStayedDays = departureDate - guest.arrived
end
guest.departure = departureDate
guest.plot.increase(guestStayedDays) # increases the electricity meter
puts guest # prints the guest
$camping.current_guests[plot-1] = nil # emptys the plot
end
end
¿Cómo es que todavía DepartureDate es nulo? Agradecido por la ayuda!
Sí, usted es la línea correcta 91 puntos a: guestStayedDays = departureDate - guest.arrived. Tu respuesta confirma entonces mi sospecha. Entonces, ¿el valor debe ser nulo, supongo? – Sebastien
Correcto. Del error que estás viendo debe ser 'guest.arrived' que es' nil'. 'guest' no es' nil' porque estás llamando 'arrive' con éxito, y' departureDate' no es 'nil' porque estás llamando' -' a eso con éxito. Es el argumento para '-' (' guest.arrived' ese es el problema). – mikej
Gracias, mikej por sus respuestas. Trataré de ver si puedo resolver esto de alguna manera. – Sebastien