【问题标题】:Rails engine 'require' prefixRails 引擎“需要”前缀
【发布时间】:2011-08-05 02:01:01
【问题描述】:

如果我有一个 gem 'foo'(它是基于引擎的),我怎么能说它包含的所有文件在'require'它们时都需要'foo/'前缀?

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

require 'foo/bar'

而不是通常的

require 'bar'

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

我知道这是可行的,因为大多数 rails 文件都包含在“rails”前缀中:

require 'rails/something'

【问题讨论】:

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


    【解决方案1】:

    这个怎么样:

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

    只要确保您的 foo 位于根目录中,其余文件位于子目录中(否则它会包含自身)

    【讨论】:

    • 我觉得你给了我相反的答案(包括文件夹中的文件),而我要求能够强制使用我的 gem 的开发人员指定需要文件的前缀在我的宝石中。还是我弄错了?
    【解决方案2】:

    除了在需要文件时手动指定前缀之外,您无法以编程方式执行此操作。 Ruby 没有办法知道,除非你告诉它。

    【讨论】:

    • 我没听懂你的回答,你能说得具体一点吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多