の理解を後回しにしていたことを思い出した
TL;DR
端的にまとめると
self あり ⇒ クラスメソッド
self なし ⇒ インスタンスメソッド
になる
インスタンスメソッド
特定インスタンスに対して操作するときにはこっち
例えば値の取得や評価など
ex) active?
def active? return false if expires_at.past? true end
Hoge.new().active?
クラスメソッド
当該のクラス(モデル)全体に対して操作するときはこっち
例えば検索やソートなど、特定インスタンスには紐つかずクラス全体への操作
ex) visibles
def self.visibles where(is_visible: true) end
Hoge.visibles
追記)この visibles メソッド、Rails なら scope で実装するのがいい気がする。