0
0

More than 1 year has passed since last update.

Railsのインスタンスメソッドとクラスメソッドの違い

Posted at

概要

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が格納される

参考文献

【Rails】クラスメソッドとインスタンスメソッドの違いと、使い分けについて

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0