簡體   English   中英

未初始化的常量買家(NameError)Ruby on Rails

[英]uninitialized constant Buyer (NameError) Ruby on Rails

我不明白為什么我總是收到錯誤消息

未初始化的常量買家(NameError)

創建子類Buyer ,我嘗試運行puts buyer1.run ,但無法正常工作。 我不明白在嘗試創建父類的子類時我做錯了什么。

class User

  def initialize(name)
     @name = name
  end

  def run
    puts "i am running"
  end

  class Buyer < User
  end

  def get_name
    @name
  end


end

user = User.new("mike")
buyer1 = Buyer.new("jack")
puts buyer1.run
puts user.get_name
puts user.run

由於Buyer類是在User類內部定義的(這很奇怪,但是允許您對User實例使用get_name方法):

buyer1 = User::Buyer.new("jack")

示范

嘗試這個:

class User

  def initialize(name)
     @name = name
  end

  def run
    puts "i am running"
  end

  class Buyer < User
  end

  def get_name
    @name
  end

end

class Buyer < User 
  # instantiate the Buyer class outside of the User class
end

user = User.new("mike")
buyer1 = Buyer.new("jack")
puts buyer1.run
puts user.get_name
puts user.run

盡管potashins的答案很有用,但是對代碼的上述更改將幫助您更准確地了解繼承對您的作用。

在User類之外實例化Buyer類,並使用<User等繼承User。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM