[我刚开始使用Ruby,但“毫无疑问是新手,”所以我向前跋涉......]
我看到的每本教程和书籍都是从Ruby到交互式shell到Ruby on Rails。我还没做Rails,但是我不想使用交互式shell。我有一个类文件(first_class.rb)和一个Main(main.rb)。如果我运行main.rb,我当然会得到uninitialized constant FirstClass
。 如何告诉红宝石有关first_class.rb
?
答案 0 :(得分:8)
最简单的方法是将它们放在同一个文件中。
但是你也可以使用require,例如:
require 'first_class'
答案 1 :(得分:3)
您还可以按如下方式使用自动加载:
autoload :FirstClass, 'first_class'
使用FirstClass后,此代码将自动加载first_class.rb。但请注意,自动加载的当前实现不线程安全(请参阅 http://www.ruby-forum.com/topic/174036)。
答案 2 :(得分:2)
还有一点值得注意:您通常不会在ruby中使用main
文件。如果您正在编写命令行工具,则标准做法是将工具放在bin
子目录中。对于普通的一次性脚本,主要的习语是:
if __FILE__ == $0
# main does here
# `__FILE__` contains the name of the file the statement is contained in
# `$0` contains the name of the script called by the interpreter
#
# if the file was `required`, i.e. is being used as a library
# the code isn't executed.
# if the file is being passed as an argument to the interpreter, it is.
end