インスタンスのフィールドに依存しないメソッドを外から呼びたくなったので
クラスメソッドにかきかえたのですがクラス内から参照すると undefined になります
クラスメソッドははじめてかくのですが
def self.method
でかけばいいといろいろなブログでかいてあったので
def self.nendo(date) date.ago(3.month).strftime("%Y") end
という感じでかいてみたんですが
これを同じファイルのインスタンスメソッド内から
self.nendo(Time.now)
という感じでよぶと undefined method になります
何か書き方が悪いのでしょうか
クラスメソッドは Java の static メソッドみたいなもので
インスタンス内からも当然よべると思っているのですが認識が違うのでしょうか
質問に「ファイルのインスタンスメソッド内」と書かれていますが、1つのファイルの中で複数のクラスやメソッドを定義する事ができるので、self.nendoメソッドと、それを呼び出したインスタンスメソッドの関係が特定できません。 そのファイルに書かれているプログラムをすべて質問に追加してもらえませんか。
回答1件
あなたの回答
tips
プレビュー