0

メイン スクリプトで作成したオブジェクトをグローバルに使用したい。

たとえば、別のファイルに別のモジュールがあり、別のルビーファイルにクラスがあります

ファイル名ModA.rb

module A
  # ........
  # some code here
  # ........
end

ファイル名ModB.rb

module B
  # ........
  # some code here
  # ........
  objReport.addReport() # getting an error "ruby uninitialized local variable or object: Main"
end

FileNameClass_Report.rb

class Report
  def addreport()
  end
end

MainScript.rb

require "FileNameModA"
require "FileNameModB"
require "FileNameClass_Report"

include ModuleA
include ModuleB

objReport = Report.New

objReport.addReport() # Works fine here

Rubyの別のファイル/モジュールでオブジェクトを作成して使用する方法を教えてください。

4

1 に答える 1

2

require "FileNameModB"モジュール B の定義を実行し、その定義がそのコンテキストに存在しない呼び出しをobjReport.addReport行う場合

モジュールの定義中に addReport を呼び出して何を達成しようとしているのかわかりませんが、いくつかの行を入れ替えて次のように機能させることができます:

require "FileNameClass_Report"
$objReport = Report.New

require "FileNameModA"
require "FileNameModB" # update your file to call $objReport.addReport

include ModuleA
include ModuleB

全体が混乱しているように見えますが、クラス/モジュールを再考して、それらをグローバルオブジェクトに含めないようにしてください

于 2012-07-09T13:24:33.607 に答える