新手问题。 Ruby类通过实例实现

时间:2014-12-13 18:33:32

标签: ruby class subclass

在阅读之前。我是Ruby的新手,我试图通过实例和练习来学习。 我找到了一些运动,但我坚持了下来。

编写一个模拟酒店房间的Ruby程序。用户将进入,签发机票,退出当然付款。

基本要求的方案:

如果有足够的房间,用户可以进入酒店。 用户可以退出,如果付款 已经在酒店的用户在退出前无法再次进入。 这就是我做的:

   class Hotel < User
      attr_accessor :room
      def initialize(room)
          @room = []
          super(name)
      end

      def on_entry
          if room.count < 20
          new_array = []
          rooms.each do |space|
              new_array << space
              print("You just rent a room!")
              end
          else
              print("Thank you for coming!")
          end
      end

      def on_exit
          if name.exist
              user.time_dindong 
          else
              puts "Please, pay for room first"
          end
      end
    end

    class User
       attr_accessor :name, :id
       def initialize(name, id)
          @name = name
          @id = id
       end
    end

我收到错误:Hotel.rb:1:in'':uninitialized constant User(NameError) 谁能告诉我我做错了什么。如果还有其他办法吗?

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

您需要在酒店课程

之前声明用户班级
class User
   attr_accessor :name, :id
   def initialize(name, id)
      @name = name
      @id = id
   end
end

class Hotel < User
  # ...

而且我认为你不需要将用户扩展到酒店。必须是:

class Hotel
  # ..

答案 1 :(得分:0)

问题在于您将酒店定义为扩展用户,但随后定义用户酒店后。用户应在酒店之前定义。

(看到Hotel继承用户有点奇怪,但我没有检查其余代码的完整性。)