0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Rails】クラスメソッドとインスタンスメソッドの使い分け

Posted at

はじめに

 本記事は、プログラミング初学者が、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
 そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
 間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。

クラスメソッドとインスタンスメソッドの使い分け

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

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

  • メソッドの記述方法
  • メソッドの呼び出し方法

です。

メソッドの記述方法

クラスメソッドの場合には以下のようにメソッド名の頭にselfを記述します。

  def self.exists_no_name_user?
    no_name_user_list = User.where(name: nil)
    no_name_user_list.exits?
  end

インスタンスメソッドの場合には以下のようにselfのない形になります。

  def full_name
    self.first_name + self.last_name
  end

メソッドの呼び出し方法

クラスメソッドはクラス名.クラスメソッドのように記述し、クラスに対してメソッドを呼び出します。

  User.self.exists_no_name_user?

インスタンスメソッドはインスタンス名.インスタンスメソッドのようにインスタンスに対し、メソッドを呼び出します。

 kato = User.new(name: 'kato')
 kato.full_name

クラスメソッドとインスタンスメソッドの使い分け

クラスメソッドの特定のインスタンスに対して実行したいメソッドはインスタンスメソッドで定義し、クラス全体に対して何等かの処理を行いたい場合に使用します。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?