如果我这样取一个Object
数字:
@objects = Object.all[1..5]
我无法再在where
上执行@object
方法。
无论如何,我仍然可以表演..
@objects.where(:attribute => identity)
只要我知道所有对象属于同一类?
答案 0 :(得分:4)
一旦您触发all
,就会返回一个数组实例,因此您的问题的回答是否。但是有一些陷阱:
保留范围变量。即如果需要在多个位置使用范围对象,请执行以下操作:
objects = Object.scoped
all_objects = objects.all
special_objects = objects.where(attribute: something_special).all
继续玩范围界定:
objects = Object.skip(1).take(5)
all_objects = objects.all
special_objects = objects.where(attribute: something_special).all
Hacky和效率低下的方式:
all_objects = Object.all[1..5]
special_objects = object.select { |object| object.attribute == something_special }