可能重复:
`-': nil can’t be coerced into Fixnum (TypeError)帮助' - ':无不能强迫Fixnum对象(类型错误)
有谁知道怎么来的guest.arrived可以为空?这是我在我的程序中使用的结帐方式的一小部分。代码中第91行的错误点是代码块的最后一部分:
departureDate = gets.chomp.to_i
guest.departure = departureDate
guestStayedDays = departureDate - guest.arrived # Days the guest have stayed
我似乎无法弄清楚这一点。 get.chomp.to_i的问题是返回nil吗?还是它返回0?但是再一次,这不会给我这个错误。那么,客人是零还是实际上是客人的组合?这就是问题所在?值得一提的是,抵达声明是在我的入住方式中,客人说明抵达日期。它不知何故失去了?
谢谢你的答案我会后签入的方法藏汉:
def self.check_in
puts "Welcome to the checkin"
puts "Please state your first name: "
firstName = gets.chomp
puts "Please state your last name:"
lastName = gets.chomp
puts "Write your address: "
address = gets.chomp
puts "and your phone number: "
phone = gets.chomp
puts "finally, your arrival date!"
arrived = gets.chomp.to_i
newPLot = $camping.generateParkingLot
guest = Guest.new(firstName, lastName, address, phone, arrived)
$camping.current_guests[newPLot-1] = guest
$camping.all_guests.push(guest) # lägg till gästen i historiken
puts "The registration was a success!! You have received plot " + newPLot.to_s + "."
end
这里到达的变量定义,当我在结账方法做把$ camping.current_guests我看到所有的信息。谢谢!
嗯我明白你的意思了。当你把它放在那里就显而易见了。但后来我又感到困惑,我是否在“说服”它错了,然后说guest.arrived ?!因为它是一个自我方法,应该是一个类方法(如果你可以说在Ruby中)。我想说的是,它感觉在self.check_in和self.check_out之间以某种方式丢失数据。 – Sebastien 2010-08-05 15:29:15