Rails引擎'require'前缀

时间:2011-04-13 21:31:56

标签: ruby-on-rails-3 path gem require rails-engines

如果我有一个宝石'foo'(这是基于引擎的),我怎么能说包含在其中的所有文件在'需要'时需要'foo /'前缀?

例如,如果在我的'foo'gem中我有一个'bar.rb'文件,我希望能够强制包含这个文件是这样的:

require 'foo/bar'

而不是通常的

require 'bar'

我希望此行为适用于任何包含上下文(来自APP,来自另一个gem等)......

我知道这是可行的,因为大多数rails文件都是通过'rails'前缀包含的:

require 'rails/something'

2 个答案:

答案 0 :(得分:0)

除了在需要文件时手动指定前缀之外,您不能以编程方式执行此操作。如果你说的话,Ruby除了知道之外别无他法。

答案 1 :(得分:0)

这个怎么样:

Dir["/path/to/directory/*.rb"].each {|file| require file }

只需确保您的根目录中有foo,子目录中的其他文件(否则它将包含在内)