実行環境:
ruby 1.9.3
Rails 3.1.3
Rails3でActiveRecordのモデルにクラスメソッドを追加します。ruby 1.9.3
Rails 3.1.3
といっても、モデルだからどうだとかいう話は全然なくて、単純にクラスにメソッドを追加するだけの話なんですが、うっかり忘れてしまったのでメモ。
# インスタンスメソッド return end def self.class_method # クラスメソッド return end private def private_method # プライベートなインスタンスメソッド return end endというようにモデルにメソッドを追加します。 class User < ActiveRecord::Base def instance_method
クラスに対して使おうとするとこんな感じ
× User.instance_method ○ User.class_method
インスタンスに対して使おうとするとこんな感じ
user = User.find(1) ○ user.instance_method × user.class_method × user.private_method
使い分けとしては、 インスタンスの状態(インスタンスが持つ変数たち)によって結果が変わるようなメソッドはインスタンスメソッド、 インスタンスに依って変わらないクラスに共通の処理を行うような場合はクラスメソッド、という感じでしょうか。
0 件のコメント:
コメントを投稿