- インスタンスメソッドは「インスタンスに対する操作」
- クラスメソッドは「モデルに対する操作」or「集合に対する操作」
って感じかな。
たとえば class Employee があったとして、
「従業員を退社させる」(従業員インスタンスに対する操作)なら
x = Employee.find("hagi")
x.go_back_home!
だろうけど、
「退社した従業員を捜す」(集合に対する操作)なら
x = Employee.search("not in office")
じゃないかなと。 あとは「入社処理」(モデルに対する操作)として
x = Employee.join(:id => 201311003, :name => "hagi")
x.go_back_home_now!
みたいなのも。
これは普通にnewして設定でもいいかもしれないけど、それだと「未だ従業員じゃない
Employeeインスタンス」を許可するモデルになると、ちょっと気持ち悪い。
x = Employee.new
x.id = 201311003
x.name = "hagi"
未だ従業員じゃない従業員インスタンスに入社メソッド投げるのも、なんかキモい。
x.join :id => 201311003, :name => "hagi"
とか。