インスタンスメソッドは個別のインスタンスを操作しました。それに対し、クラスメソッドはインスタンスとは紐付いておらず、クラス全体(Railsではモデル全体)の中から何か取り出す場合に使用します。
全体から探すようなメソッドを例に詳しく見てみましょう。まず記法はインスタンスメソッドとは違ってdef self.の後にメソッド名を書く形になります。self.がつくことを忘れないようにしましょう。以下のメソッドを使うと、タイトルにtestという文字が含まれるレコードを探すことが出来ます。
# article.rb
def self.find_tests
where('title like ?', "%test%")
end
# ターミナル
> Article.find_tests
#=> クラスメソッドが呼び出される
一番新しいアーティクルを1件だけ取り出すクラスメソッドを自作してみましょう。以下情報を参考にして考えてみて下さい。
Article.lastを使用すると最後のレコードが取り出される
無料ビデオ講座のお知らせ
Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。