我正在尝试在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文件加载一些变量(即电子邮件凭证)。
我做错了什么?
答案 0 :(得分:3)
包括不是要求。包含必须是另一个类或模块主体的一部分。
这样做:
require './config/config.rb'
class App
include MyConfig
# more code here
end
基本上包含函数作为当前在范围内的类或模块的内联扩展。它允许您将功能混合到外部代码中的对象中,而无需扩展外部代码。