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

include は require とは異なります。インクルードは、別のクラスまたはモジュール本体の一部である必要があります。

これを行う:

require './config/config.rb'

class App
    include MyConfig

    # more code here
end

基本的に、現在スコープ内にあるクラスまたはモジュールのインライン拡張として関数を含めます。外部コードを拡張せずに、外部コードからオブジェクトに機能を混在させることができます。

于 2013-02-07T10:52:20.047 に答える