0

ROR 3.2 では、ラムダ スコープの代わりに引数を使用してレコードを取得するために、モデルでスコープ メソッドを使用する方が一般的に優れていることをドキュメントで見ました。

スコープの引数を受け入れるには、クラス メソッドを使用することをお勧めします。これらのメソッドは、関連オブジェクトで引き続きアクセスできます

しかし、動的ファインダー (scope および scope メソッドの代わりに find_by_* など) を使用するのはいつですか?動的ファインダーは引数を受け取ることもでき、ビューから直接使用する方が簡単なようです。

持っているすべてのレコードを取得したい場合

attribute1 == [boolean] AND attribute2 IN [array]

どの方法が推奨されますか (スコープ、スコープ メソッド、または動的ファインダー?)

4

1 に答える 1

0
  1. ビューでファインダーを使用しないでください。
  2. これはおそらくクラス メソッドを使用して記述します。

このようなもの:

class Dog < ActiveRecord::Base

  attr_accessible :chewed, :color    

  def self.toys chewed = false, colors = []
    where chewed: chewed, color: colors
  end

end
于 2013-04-12T02:47:51.260 に答える