私は外の宝石の周りを優雅で孤立した形で包み込む必要があります。下の抽象化を考えると、すべてがスムーズに実行されますが、「バー」は決して印刷されません。 誰かが私にその理由を教えてもらえますか?gemのクラスメソッドを絞り込みます
マイコード:
module RefineGem
refine GemMainModule::GemClass do
def self.foo
p 'bar'
super
end
end
end
module Test
using RefineGem
def test
GemMainModule::GemClass.foo
end
end
class Testing
include Test
end
Testing.new.test
宝石コード:
module GemMainModule
class Base
include GemMainModule::Fooable
end
class GemClass < Base
end
end
module GemMainModule
module Fooable
extend ActiveSupport::Concern
class_methods do
def foo
p 'zoo'
end
end
end
end
をモジュールを付加する方法、クリーナー堅牢であるため、私は 'refinements'を使用したことがないとインテリジェントなアプローチ。私はあなたに 'GemMainModule :: GemClass.singleton_class {def foo ... end}'を改良するよう提案します。私は洗練されたものがクラスメソッドのために働くのか疑問です。 – mudasobwa
是非、ソリューションとしてモジュールを答えとして投稿してください。私はそれを受け入れます。 – fabriciofreitag
「モデルを使用する」とはどういう意味ですか? – mudasobwa