ruby 2.2.3
Rails 4.2.6
rubyのクラスメソッドのオーバーライドについて質問させてください。
以下の、クラスAからクラスBのメソッドを呼び出している処理があります。
クラスAのメソッド呼び出し方は変えず、クラスCかモジュールCをでmethod_aをオーバーライドしたいと考えています。いい実装方法がありましたら、教えてください。
ruby
1class A 2 B.method_a 3end 4 5class B 6 class << self 7 def method_a 8 "Bクラスの処理" 9 end 10 end 11end
モジュールCを作って、メソッドのオーバーライドを試みましたがBクラスのメソッドが呼び出されました。
実行結果:"Bクラスの処理"
ruby
1class A 2 B.method_a 3end 4 5class B 6 include C 7 class << self 8 def method_a 9 "Bクラスの処理" 10 end 11 end 12end 13 14module C 15 extend ActiveSupport::Concern 16 class_methods do 17 def method_a 18 'Cモジュールの処理' 19 end 20 end 21end 22
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/09 06:22