0

我正在尝试在 Sinatra 中加载我的自定义模块,但是在加载应用程序时我得到了

'include' : Wrong argument type String (expected Module)

所以在我的 app.rb 我有

require './config/config.rb'
include 'MyConfig'

我的模块看起来像这样

module MyConfig
def config
 environment = ENV["RACK_ENV"] || "development" 
 YAML.load_file("/config/config.yml")[environment]
end
end

我正在尝试使用 config.yml 文件来加载一些变量(即电子邮件凭据)。

我究竟做错了什么?

4

1 回答 1

3

包括不像要求。包含必须是另一个类或模块主体的一部分。

做这个:

require './config/config.rb'

class App
    include MyConfig

    # more code here
end

Include 基本上用作当前范围内的类或模块的内联扩展。它允许您将功能从外部代码混合到对象中,而无需扩展该外部代码。

于 2013-02-07T10:52:20.047 回答