尝试实例化新类时出现未初始化的常量错误

杰克·凯利

我收到一个错误:

lynda.rb:206:in `<main>': uninitialized constant Pig (NameError)

当我尝试实例化Pig类的新实例时。有人知道为什么我会收到此错误吗?我已经在网上搜索过,并且被告知这通常是由于不正确地要求您的家长上课。但是,我的父类在同一个文件中。

class Animal
  attr_accessor :name
  attr_writer :colour
  attr_reader :legs, :arms

 def initialize(noise,legs=4,arms=0)
    @noise = noise
    @legs = legs
    @arms = arms

    puts "A new animal has been instantiated"
 end

 def noise=(noise)
    @noise = noise
 end

 def noise
    @noise
 end



  class Pig < Animal
   def noise
      parent_method = super
      puts "Hello and #{parent_method}"
   end
 end

  class Cow < Animal
  end
end

piggy = Pig.new("oink")
p piggy.noise
安德烈·德尼科(Andrey Deineko)

您在Pig类内部定义了Animal类。

尽管有这样的事实,但很可能不是您想要的那样,而是要解决您要正确引用该类的问题:

piggy = Animal::Pig.new("oink")

类之外定义PigCowAnimal,这意味着Animal在打开之前关闭Pig这样,您就可以使用以下方法实例化它:

 piggy = Pig.new("oink")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试包含类/对象关联时出现未初始化的常量错误

尝试创建客户端时出现“未初始化的常量”错误

尝试使用const初始化变量时出现错误“初始化元素不是常量”

修补Redmine时出现未初始化的常量

尝试继续或实例化到 vc 时出现初始化错误

Ruby类中的未初始化常量错误

在lib文件夹中使用Ruby Object时出现未初始化的常量错误

在视图中联接3个表时出现未初始化的常量错误

加载视图时出现“未初始化的常量”路由错误

通过字段访问has_many时,类名不同的“未初始化常量”错误

如果Rails的子文件夹中的类出现类,为什么会出现未初始化的常量错误?

尝试初始化结构数组时出现段错误

尝试使i = i * i时,为什么出现错误“使用未初始化的内存'i'”和“使用了未初始化的局部变量'i'”的错误

右键单击某个元素时,出现“未初始化的常量 Selenium::WebDriver::DriverExtensions::HasInputDevices (NameError)”错误

使用AWS Cookbook时出现“未初始化的常量Chef :: Provider :: AwsS3File :: RightAws”错误

路由错误未初始化的常量SubmitsController(尝试使用Carrierwave上传文档)

尝试在Rails中设置rspec测试时获取未初始化的常量Faker :: String

尝试使用ruby gem- NameError时出错(未初始化的常量RightScraper :: Scraper)

为什么在以前运行的代码中出现错误“未初始化的常量DriverManager”?

为什么会出现“未初始化的常量ApplicationController :: SessionHelper”错误?

升级到Rails 4.2.3时,出现“ NameError:未初始化的常量ActionController :: Responder”

抽象类中的Java未初始化常量

更改类和模块中的子定义样式后未初始化的常量错误

为什么使用 NameError 创建新资源错误(未初始化的常量 Thing::user)?

实例化UISegementedControl的子类时,对类使用未实现的初始化程序'init(frame :)'

在Rails中调用类方法时获取未初始化的常量

NameError:引用模块中的类时未初始化的常量

为什么收到错误“未初始化的常量SecureRandom?

Rails的路由错误-未初始化的常量SubscribersController