1

クラスに 2 つの異なるモジュール ライブラリを含めています。両方とも方法がありtest_methodます。どちらか一方を明示的に使用するにはどうすればよいですか?

class User
include Calculus::Math #a module
include Algebra::Math::Misc #a module

#perform_test is defined in both Calculus::Math and Algebra::Math::Misc
perform_test: 1 

#Calculus::Math::perform_test: 1 #This doesn't work

end

ありがとう

4

2 に答える 2

0

メタプログラミングの場合は、少しする必要があります。

(Calculus::Math).method(:perform_test).bind(self).call 1

また

include Calculus::Math
alias :foo :perform_test
include ...

これらのいずれもテストしていないため、小さなエラーが発生した可能性があります。

于 2012-10-27T23:37:13.597 に答える
0

perform_test上のモジュール関数に変えてみてくださいCalculus::Math

Calculus::Math.module_eval do
  module_function(:perform_test)
  public :perform_test
end

class User
  include Calculus::Math #a module
  include Algebra::Math::Misc #a module

  Calculus::Math.perform_test(1)
end
于 2012-10-27T23:49:16.787 に答える