別ファイルでクラスを定義してrequireしてオブジェクトを作成したのですが、initialize関数が2回実行されているようです。
a.rb:
Dir["#{File.dirname(__FILE__)}/*.rb"].each do |f| require(f) end
object = First.new
b.rb (必須):
class First
def initialize
p "Hello"
end
end
そして結果:
"Hello"
"Hello"
私が何か他のことをテストしたと言えば、もっとおかしくなります。b.rbコードをa.rbに入れました(つまり、a.rbでファーストクラスを定義しました)、結果は同じでした:
a.rb:
Dir["#{File.dirname(__FILE__)}/*.rb"].each do |f| require(f) end #I now this line is useless
class Second
def initialize
p "Hello"
end
end
object = Second.new
"Hello"
"Hello"
しかし、最初の行(コードが必要)(2番目のテストでは役に立たなかった(a.rbでクラスを定義したため、b.rbが役に立たなかったため))を削除すると、すべて問題ありませんでした:
a.rb:
#Dir["#{File.dirname(__FILE__)}/*.rb"].each do |f| require(f) end #now it is not executed.
class Second
def initialize
p "Hello"
end
end
object = Second.new
"Hello"
何か案が?!