无法访问 class 模块内部:"Main.rb:2:in `<main>': uninitialized constant"
Cannot access class inside module: "Main.rb:2:in `<main>': uninitialized constant"
我是 ruby 语言的新手。
我只需要执行一个用ruby编写的程序。
我退房了this small project。然后看到它包含一个 gemfile 并执行以下步骤:
# Fist installed what I believe is needed
sudo apt install ruby-full
sudo gem install bundler
cd colorscore
bundle install --path vendor/bundle
然后按照 README.md
上的建议创建了一个文件,内容为:
include Colorscore
histogram = Histogram.new('test/fixtures/skydiver.jpg')
# This image is 78.8% #7a9ab5:
histogram.scores.first # => [0.7884625, RGB [#7a9ab5]]
# This image is closest to pure blue:
palette = Palette.from_hex(['ff0000', '00ff00', '0000ff'])
scores = palette.scores(histogram.scores, 1)
scores.first # => [0.16493763694876, RGB [#0000ff]]
并执行:
bundle exec ruby Main.rb
我得到的错误是:
Main.rb:2:in `': uninitialized constant Histogram (NameError)
似乎Main.rb
文件读取了Colorscore
模块,但无法访问其中的Histogram
class。
我做错了什么?
版本:
ruby -v
# ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
bundle -v
# Bundler version 2.1.4
感谢@Olkin/@BobRodes 的评论,我已经解决了这个问题:
我必须在 Main.rb
的顶部添加:require 'colorscore'
我是 ruby 语言的新手。
我只需要执行一个用ruby编写的程序。
我退房了this small project。然后看到它包含一个 gemfile 并执行以下步骤:
# Fist installed what I believe is needed
sudo apt install ruby-full
sudo gem install bundler
cd colorscore
bundle install --path vendor/bundle
然后按照 README.md
上的建议创建了一个文件,内容为:
include Colorscore
histogram = Histogram.new('test/fixtures/skydiver.jpg')
# This image is 78.8% #7a9ab5:
histogram.scores.first # => [0.7884625, RGB [#7a9ab5]]
# This image is closest to pure blue:
palette = Palette.from_hex(['ff0000', '00ff00', '0000ff'])
scores = palette.scores(histogram.scores, 1)
scores.first # => [0.16493763694876, RGB [#0000ff]]
并执行:
bundle exec ruby Main.rb
我得到的错误是:
Main.rb:2:in `': uninitialized constant Histogram (NameError)
似乎Main.rb
文件读取了Colorscore
模块,但无法访问其中的Histogram
class。
我做错了什么?
版本:
ruby -v
# ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
bundle -v
# Bundler version 2.1.4
感谢@Olkin/@BobRodes 的评论,我已经解决了这个问题:
我必须在 Main.rb
require 'colorscore'