0

Object私がそのような数を取るならば:

@objects = Object.all[1..5]

whereでメソッドを実行できなくなりました@object

とにかくありますか、まだ演じられます。

@objects.where(:attribute => identity)

すべてのオブジェクトが同じクラスであることがわかっている限り、

4

1 に答える 1

4

トリガーallした配列インスタンスが返されるので、あなたの質問への答えはノーです。ただし、いくつかの落とし穴があります。

  1. スコープ変数を保持します。つまり、スコープ付きオブジェクトを複数の場所で使用する必要がある場合は、次のようにします。

    objects = Object.scoped
    
    all_objects     = objects.all
    special_objects = objects.where(attribute: something_special).all
    
  2. スコーピングで遊び続けます:

    objects = Object.skip(1).take(5)
    
    all_objects     = objects.all
    special_objects = objects.where(attribute: something_special).all
    
  3. ハッキーで非効率的な方法:

    all_objects     = Object.all[1..5]
    special_objects = object.select { |object| object.attribute == something_special }
    
于 2012-05-11T19:03:04.170 に答える