需要Ruby中的文件

时间:2012-02-27 02:30:45

标签: ruby path require

我正在Sinatra构建一个Web应用程序,我在/ lib / checkers /

中有一堆文件

我目前要求他们这样做:

require File.expand_path(File.dirname(__FILE__) + '/lib/checkers/board.rb')
require File.expand_path(File.dirname(__FILE__) + '/lib/checkers/checker.rb')

这看起来很蠢,但我已经尝试了

require '/lib/checkers'

require '/lib/checkers/' 

require File.expand_path(File.dirname(__FILE__) + 'lib/checkers/')

和其他变体一样,但似乎没有任何效果。你能帮忙吗?

1 个答案:

答案 0 :(得分:4)

require_relative 'lib/checkers/board'
require_relative 'lib/checkers/checker'

这就是我一直这样做的方式。它位于我的主应用程序文件中,该文件始终位于根目录中。我不确定它将如何从其他文件中运行,但我相信它将与调用文件相关。

此外,settings.root将返回您应用的根目录,无需任何地方File.dirname(__FILE__)

这可以在Ruby 1.9中使用,而不需要通过上述注释中的任何特殊技术。

如果您使用的是1.8,则可以执行此操作

require './lib/checkers/board'
require './lib/checkers/checker'

1.8的其他技巧列于this question

相关问题