2010-10-25 selfの扱い rails ruby modelでメソッドを書いていたときにすごいつまったのでメモ railsのモデル内でのメソッドで以下のようなメソッドを作ったとする。 def fizz return "fizz" end def self.buzz self.fizz end このモデルからbuzzメソッドを呼び出すとエラーが出力されてしまう。なぜかというと, self.buzz このselfはbuzzがクラスメソッドであることを表している. つまり,buzzはインスタンスを経由せずにコード内にbuzzと書くことで動く. self.fizz このselfはメソッドを呼び出したインスタンスをよびだすためのselfである.こちらのselfはhoge.buzzとかかれたhogeを引用してhoge.fizzを実行しようとしている. つまり,buzzはインスタンスなしで実行されているのに対して,fizzのselfがインスタンスを要求するためにおこるエラーだった.rails難しいなー