あるクラスが別のクラスと同じ動作をするプログラムをレールで書いています。唯一の違いは@secret_num
、2 つのクラス間で異なる方法で計算されるクラス変数 があることです。特定のスーパー クラス メソッドを呼び出したいのですが、子クラスのクラス変数を使用します。注意が必要なのは、クラス変数が定数ではないため、独自のメソッド内で設定していることです。以下でやろうとしていることを行う方法はありますか? ありがとう
Class Foo
def secret
return [1,2,3].sample
end
def b
@secret_num = secret
... # lots of lines of code that use @secret_num
end
end
Class Bar < Foo
def secret
return [4, 5, 6].sample
end
def b
super # use @secret_num from class Bar.
end
end
super
への呼び出しが親クラスのsecret
メソッド、つまりも呼び出すため、これは機能しませんFoo#secret
が、子クラスからの秘密の番号、つまり を使用する必要がありますBar#secret
。