无法在Sinatra中加载我的自定义模块

时间:2013-02-07 10:48:10

标签: ruby module sinatra

我正在尝试在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文件加载一些变量(即电子邮件凭证)。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

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

这样做:

require './config/config.rb'

class App
    include MyConfig

    # more code here
end

基本上包含函数作为当前在范围内的类或模块的内联扩展。它允许您将功能混合到外部代码中的对象中,而无需扩展外部代码。