概要
Ruby on Railsにおいて__インスタンスメソッド__と__クラスメソッド__についての知識が曖昧だったため
備忘録としてアウトプットします。
インスタンスメソッドとは
####結論
インスタンスメソッドとは、あるクラスから生成されたインスタンスに対して呼び出すことのできるメソッドです。
使用用途例
例えば、Userクラスにおいて生成されたuserが成年か未成年かを判定したい場合など。
コード例
class User
def adult # インスタンスメソッド
self.age >= 20 ? '成人' : '未成年' # 20歳以上なら'adult', 20歳未満なら'child'を返す処理
end
end
user = User.new(name: '田中', age: 23)
user.adult #=> '成人'
クラスメソッドとは
結論
クラスメソッドとは、クラス全体に対して何か処理を行う場合に使用するメソッドです。
使用用途例
例えば、Userクラスの中から20歳以上のuserを取得する場合など
コード例
class User
def self.adult #クラスメソッドの定義は'self'をつける *クラス名(ここではUser)でも可
user = where('age >= 20')
end
end
users = User.adult #=> userに20歳以上のuserが格納される