Я использовал windows cmd вместо Eclipse IDE. Я покажу шаги, которые я использовал, чтобы найти ошибки для кода и, наконец, исправить их. Плагин DLTK здесь не виноват. Файл модуля и тестовый скрипт находятся в одной папке.
УРОК - Имя модуля и постоянное имя в модулях ДОЛЖНЫ начинаться с заглавной буквы. Почему, я не знаю.
aModule.rb
module aModule
aConstant = 7
end
test.rb
require 'aModule'
puts aModule::aConstant
CMD: кд в папку test.rb и ruby Test.rb
ошибка: `` требуют ': не может загрузить такой файл - tokenizer.rb (LoadError) ` помощь:Ruby 'require' error: cannot load such file
Ruby 1.9 has removed the current directory from the load path, and so you will need to do a relative require on this file, as Pascal says:
require './tokenizer'
There's no need to suffix it with .rb, as Ruby's smart enough to know that's what you mean anyway.
Я сделал следующие изменения:
test.rb
require './aModule'
puts aModule::aConstant
CMD:ruby Test.rb
ошибка:class/module name must be CONSTANT (SyntaxError)
в aModule.rb помощь:NameError in Ruby
Я сделал следующие изменения:
aModule.rb
module AModule # capital
aConstant = 7
end
test.rb
require './AModule'
puts AModule::aConstant
CMD: рубиновый тест.rb Ошибка:undefined method 'aConstant' for AModule:Module (NoMethodError)
help: Используется по вышеуказанной ссылке. Я думаю, что константу нужно также назвать капиталом.
Заключительный рабочий код:
aModule.rb
module AModule # capital
AConstant = 7 # capital
end
test.rb
require './AModule'
puts AModule::AConstant
WTF является рубин, как это ??? И почему, черт возьми, мне нужно добавить ./
перед именем модуля, когда он находится в той же папке, что и тестовый скрипт?
Невозможно воспроизвести. – sawa
@ sawa - На самом деле, я определил его. Я сделал небольшую ошибку в нижнем регистре. Я исправил это сейчас. Такая же ошибка сохраняется. Можете ли вы довести меня до нуля, если не видите ошибки или недостатка в моем вопросе? Благодарю. –
Мой комментарий относится к вашему вопросу после редактирования (мой удаленный ответ был применен к вашему вопросу перед редактированием). Я не буду следовать вашей просьбе, чтобы проголосовать. Вы не должны просить об этом. Кроме того, как я писал, он не может быть воспроизведен. – sawa