Ruby on rails 未初始化常量MyClass::回放

Ruby on rails 未初始化常量MyClass::回放,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试使用在服务器上提供音频播放。不幸的是,在尝试执行此操作时,我一直得到一个未初始化的常量MyClass::Playback异常 我对Ruby和Rails非常陌生,所以我不确定如何解决这个问题。以下内容已添加到我的Gemfile中,我已运行捆绑安装: gem 'ruby-alsa' 我的控制器代码如下所示(尽管我甚至不能保证代码的有效性): 更新:如果我取消对以下行的注释,我会得到相同的异常(除了ALSA是未初始化的常量): 看起来您的注释代码是正确的;你应该使用 下一个问题是write是

我正在尝试使用在服务器上提供音频播放。不幸的是,在尝试执行此操作时,我一直得到一个未初始化的常量MyClass::Playback异常

我对Ruby和Rails非常陌生,所以我不确定如何解决这个问题。以下内容已添加到我的Gemfile中,我已运行捆绑安装:

gem 'ruby-alsa'
我的控制器代码如下所示(尽管我甚至不能保证代码的有效性):

更新:如果我取消对以下行的注释,我会得到相同的异常(除了ALSA是未初始化的常量):


看起来您的注释代码是正确的;你应该使用

下一个问题是
write
是该类的实例方法。如您链接到的页面所示,正确的用法可能更像:

ALSA::PCM::Playback.open do |playback|
  playback.write do |length|
    file.read length
  end
end

(注意:我对ALSA或这个gem一无所知,所以我不知道上面应该怎么做。)

看起来您注释掉的代码是正确的;你应该使用

下一个问题是
write
是该类的实例方法。如您链接到的页面所示,正确的用法可能更像:

ALSA::PCM::Playback.open do |playback|
  playback.write do |length|
    file.read length
  end
end

(注意:我对ALSA或这颗宝石一无所知,所以我不知道上面应该怎么做。)

你试过要它吗

require 'ruby-alsa'
编辑:

试着先要求rubygems

require 'rubygems'
require 'ruby-alsa'

你试着要它吗

require 'ruby-alsa'
编辑:

试着先要求rubygems

require 'rubygems'
require 'ruby-alsa'

简单地看一下,您的GEM文件需要:

gem 'ruby-alsa', :require => 'alsa'

简单地看一下,您的GEM文件需要:

gem 'ruby-alsa', :require => 'alsa'

您的代码位于类中,因此需要执行以下操作:

::ALSA::PCM::Playback.open do |playback|

请注意前面的双冒号。

您的代码位于类中,因此需要执行以下操作:

::ALSA::PCM::Playback.open do |playback|

请注意前面的双冒号。

对不起,我应该提到我对该行进行了注释,因为它也不起作用。在ALSA::PCM:Playback行未注释的情况下,它会抛出相同的异常:未初始化常量MyClass::ALSAIn在这种情况下,
::ALSA::PCM::Playback
强制顶级解析,但我认为这确实表明ALSA代码不是正确需要的。抱歉,我应该提到我评论了那行,因为它也不起作用。在ALSA::PCM:Playback行未注释的情况下,它抛出相同的异常:未初始化常量MyClass::ALSAIn在这种情况下,
::ALSA::PCM::Playback
强制顶级解析,但我认为这确实表明ALSA代码不是正确需要的。我确实这样做了……不幸的是,我得到了“没有这样的文件要加载--ruby ALSA”1.我真的认为这是我的问题。我从我的项目根目录运行了一个“find.-name alsa-print”,但什么也没找到。我是否需要在项目中的某个地方包含源代码?编辑:很抱歉,我的alsa文本格式是斜体,但它周围有星星,用于通配符搜索。@senfo Goods gracious,如果您无法加载
ruby alsa
,当然这就是问题所在。如果您在问题描述中包含了这一点,那会很有帮助。@Phrogz是Ruby的新手,我甚至不确定这是否必要。在更新我的Gemfile之后,事实证明是这样的(没有必要)。我确实这样做了……不幸的是,我得到了“没有这样的文件要加载——ruby alsa”。我真的认为这是我的问题。我从我的项目根目录运行了一个“find.-name alsa-print”,但什么也没找到。我是否需要在项目中的某个地方包含源代码?编辑:很抱歉,我的alsa文本格式是斜体,但它周围有星星,用于通配符搜索。@senfo Goods gracious,如果您无法加载
ruby alsa
,当然这就是问题所在。如果您在问题描述中包含了这一点,那会很有帮助。@Phrogz是Ruby的新手,我甚至不确定这是否必要。在更新我的Gemfile之后,事实证明是这样的(没有必要)。