クラス/インスタンスメソッドの使い分け方法
クラス/インスタンスメソッドの使い分け方法
railsのモデルファイルを書いていて間違えやすいのが、クラス/インスタンスメソッドの使い分けです。
先に結論
データすべて(モデルそのもの)に対する操作はクラスメソッド。特定のデータに対する操作はインスタンスメソッド
例)Personモデルを定義したと仮定した場合
class Person # クラスメソッド def self.exists_no_name_person? no_name_person_list = Person.where(name: nil) no_name_person_list.exits? end # インスタンスメソッド def full_name self.first_name + self.last_name end end # exists_no_name_person?クラスメソッドは全てのPersonデータに対しての処理なのでクラスメソッドになる Person.exists_no_name_person? # full_nameインスタンスメソッドは特定のpersonにな対しての処理なのでインスタンスメソッドになる tanaka = Person.new(name: 'tanaka') tanaka.full_name
参考:
必要なModelファイルを作成する|RailsとReactでUberEats風SPAアプリケーションをつくってみよう!|Techpit