Dans mon programme Im obtenir une erreur qui dit ./ruby_camping.rb:91:in` -': nul ne peut être forcé dans Fixnum (TypeError). Ce que je voudrais faire est à la caisse un invité que je viens de vérifier est ici le bloc de code pour la partie de la caisse.`- ': nul ne peut être contraint dans 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
Comment se departureDate est encore nul? Reconnaissant de l'aide!
Oui, vous avez la bonne ligne 91 points à: guestStayedDays = departureDate - guest.arrived. Votre réponse confirme alors ma suspicion. Alors, la valeur doit être nulle, je suppose? – Sebastien
Correct. De l'erreur que vous voyez, il doit s'agir de 'guest.arrived' qui est' nil'. 'guest' n'est pas' nil' parce que vous appelez 'arrived' avec succès, et' departureDate' n'est pas 'nil' parce que vous appelez' -' avec succès. C'est l'argument de '-' (' guest.arrived' c'est le problème.) – mikej
Merci mikej pour vos réponses. Je vais essayer de voir si je peux résoudre cela d'une manière ou d'une autre. – Sebastien