Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模块的Ruby继承_Ruby_Class_Inheritance - Fatal编程技术网

模块的Ruby继承

模块的Ruby继承,ruby,class,inheritance,Ruby,Class,Inheritance,所以我有三门课: MyModule::Base MyModule::Artist MyModule::Song MyModule::Artist继承自MyModule::Base,因此可以访问其所有实例方法,并声明为: module MyModule class Artist < MyModule::Base 我得到一个名称错误'未初始化常数'。比如MyModule::Base根本不存在!我是否遗漏了Ruby中类继承的一些基本内容,还是其他什么 谢谢。我查看了您的回购协议,发现虽然

所以我有三门课:

MyModule::Base
MyModule::Artist
MyModule::Song
MyModule::Artist
继承自
MyModule::Base
,因此可以访问其所有实例方法,并声明为:

module MyModule
  class Artist < MyModule::Base
我得到一个
名称错误
'未初始化常数'。比如
MyModule::Base
根本不存在!我是否遗漏了Ruby中类继承的一些基本内容,还是其他什么


谢谢。

我查看了您的回购协议,发现虽然您通过
艺术家
中的
require\u relative
正确地要求您的
基本
模块,但您使用大锤
require
敲碎
歌曲中的螺母

因为有一种系统范围的
base
,所以正在加载它,而不是预期的本地
Echonest::base
。只需使用
require\u relative
即可享受


希望这能有所帮助。

你能发布一个可运行的代码片段来演示这个问题吗?我是在这个repo的上下文中说的:base.rb和song.rb文件。是的,不过,复制代码片段还是不错的。也许这会让你意识到这个问题。注意:试着使用
class-Artist
class-Song
。您不需要范围说明符,您已经在那个范围内了。我想这可能与文件系统有关。即使删除了模块的所有引用并将其作为一系列类,它仍然找不到基类。但是,这是有意义的,当我运行规范时,我仍然只剩下
echonest ruby api/lib/song.rb:9:in':未初始化常量echonest::Base(NameError)
:(这似乎与我的本地计算机上的权限有关,尽管您的回答确实有帮助,因此我将其标记为正确答案。
module MyModule
  class Song < MyModule::Base