私はRuby on Rails 3.0.7を使用しています。新しいActiveRecord::Relation
を初期化して、クラスオブジェクト(同じ "タイプ"のすべてのオブジェクト)を自分自身に取り込む可能性があります。 )<<
メソッドを使用します。そうでなければ(自分のニーズに合わせて)新しいRuby array
クラスを追加する必要がありますが、配列を使用してActiveRecord::Relation
のようにメソッドを実行することはできません(例:where
、order
など)。ActiveRecord :: Relationオブジェクトを使って作業する
Seeing the RoR code私はでこれを見つけた:
def initialize(klass, table)
@klass, @table = klass, table
@implicit_readonly = nil
@loaded = false
SINGLE_VALUE_METHODS.each {|v| instance_variable_set(:"@#{v}_value", nil)}
(ASSOCIATION_METHODS + MULTI_VALUE_METHODS).each {|v| instance_variable_set(:"@#{v}_values", [])}
@extensions = []
end
が、私はそれについての良い文書を発見していません。
ActiveRecord::Relation
を初期化するにはどうすればよいですか? 「カスタム」ActiveRecord::Relation
オブジェクトで直接作業するのは一般的なプラクティスですか?何について助言していますか?
P.S:私はクラスオブジェクト(<<
を使用)を追加したとのすべての操作の最後に、私はその関連replace
メソッドを使用する必要がある、ので、多分私はAssociationCollectionを使用する必要があります。
なぜこのモデルを定義しないのですか? – nzifnab