неопределенный метод `push 'для nil: NilClass (NoMethodError) Ruby - PullRequest
0 голосов
/ 03 августа 2010

Я пытаюсь добавить объекты в массив, используя push.У меня есть программа, где вы можете зарегистрировать гостей.Когда я выбираю вариант регистрации в моем меню, я не могу добавить нового гостя в историю гостя.

Это не работает:

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

        newPLot = $camping.generateParkingLot
        guest = Guest.new(firstName, lastName, address, phone, arrived)
        $camping.current_guests[newPLot-1] = guest

        puts "The registration was a success!! You have received plot " + newPLot.to_s + "."
        @all_guests.push(guest)   # adds the guest to the history 
  end 

Здесь я получаю check_in': undefined method push 'для nil: NilClass (NoMethodError).Но если я закомментирую эту строку:

#@all_guests.push(guest)   # adds the guest to the history

Я могу зарегистрировать гостя.И тогда, когда я выбираю 3 варианта из моего меню, которое:

def self.do_action(action)
 # utför händelse baserat på valet
  case action
     when 1:
        check_in
     when 2:
        check_out
     when 3:
       puts $camping.current_guests
      when 4:
       puts $camping.all_guests
      when 5:
       puts "You are now leaving the camping, welcome back!"
       exit    
     end
  end

Тогда я вижу гостя там.Единственная проблема заключается в том, что я не могу сделать 4 варианта, который должен показать всех гостей, потому что я закомментировал эту строку кода.Итак, для округления, как я могу использовать эту строку кода:

@all_guests.push(guest)   # adds the guest to the history 

Без получения сообщения об ошибке ??Благодарю за помощь!

1 Ответ

4 голосов
/ 03 августа 2010

@all_guests не определен в файле, в котором вы получаете ошибку, он определен в глобальном $camping.Измените код на

$camping.all_guests.push(...)

и посмотрите, будет ли он работать лучше для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...