名前付きスコープまたはスコープの代わりに、クラス メソッドを記述できます。
元:
def self.desc
<code>
end
なぜスコープを使用するのでしょうか?
名前付きスコープまたはスコープの代わりに、クラス メソッドを記述できます。
元:
def self.desc
<code>
end
なぜスコープを使用するのでしょうか?
両方のアプローチを使用できます。しかし、メソッドを使用すると、スコープのコードが大きくなると読みやすくなります。
スコープと同じように機能するクラスメソッドを確実に作成できます。それらはまた、私たちが遊ぶためのアレルを持っていなかったときのRails2.xからのちょっとしたホールドオーバーです。
私にとってスコープは、アソシエーションのようにモデルを「定義」する方法です。スコープを使用すると、これらの定義がより明確になり、モデルが一目でわかるように、通常は上部に配置されます。
引数の受け渡しを開始する必要がある場合、クラスメソッドに移行する傾向があることがわかりました。ええ、それを行う方法はありますが、実際にはその時点でクラスメソッドが必要になり始めています(特にオプションの引数がある場合、Ruby 1.9はそれを修正するのに役立つと思いますが)