非常简单的Ruby问题:我的班级在哪里?

时间:2008-12-26 21:59:13

标签: ruby

[我刚开始使用Ruby,但“毫无疑问是新手,”所以我向前跋涉......]

我看到的每本教程和书籍都是从Ruby到交互式shell到Ruby on Rails。我还没做Rails,但是我不想使用交互式shell。我有一个类文件(first_class.rb)和一个Main(main.rb)。如果我运行main.rb,我当然会得到uninitialized constant FirstClass如何告诉红宝石有关first_class.rb

的信息

3 个答案:

答案 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