2

名前付きスコープまたはスコープの代わりに、クラス メソッドを記述できます。

元:

def self.desc
  <code>
end

なぜスコープを使用するのでしょうか?

4

3 に答える 3

3

両方のアプローチを使用できます。しかし、メソッドを使用すると、スコープのコードが大きくなると読みやすくなります。

于 2012-04-18T13:48:40.270 に答える
2

スコープと同じように機能するクラスメソッドを確実に作成できます。それらはまた、私たちが遊ぶためのアレルを持っていなかったときのRails2.xからのちょっとしたホールドオーバーです。

私にとってスコープは、アソシエーションのようにモデルを「定義」する方法です。スコープを使用すると、これらの定義がより明確になり、モデルが一目でわかるように、通常は上部に配置されます。

引数の受け渡しを開始する必要がある場合、クラスメソッドに移行する傾向があることがわかりました。ええ、それを行う方法はありますが、実際にはその時点でクラスメソッドが必要になり始めています(特にオプションの引数がある場合、Ruby 1.9はそれを修正するのに役立つと思いますが)

于 2012-04-18T14:00:13.957 に答える