Методы поиска очень удобны для извлечения записей, и я часто использую: include для предварительной выборки ссылочных записей, чтобы избежать дорогостоящих обращений в БД.
У меня есть случай, когда я получаю все продажи продавцом.
@sales = Sales.find(:all,
:include => [:salesperson, :customer, :batch, :product],
:conditions => {:salesperson_id => someone},
:order => :customer_id)
Затем я хочу нарезать и нарезать кубики возвращенных записей на основе того, что было возвращено. Например, я хочу создать отчет обо всех продажах, совершенных этим продавцом в конкретном магазине, который, как мы знаем, является подмножеством ранее возвращенных данных.
То, что я хотел бы сделать, это
@storeSales = @sales.find_by_store(store_id)
... и извлекать это подмножество из массива, хранящегося в памяти, как новый массив, а не достигать того же самого, выполняя поиск в базе данных снова. В конце концов, @sales - это просто массив объектов Sales, поэтому не кажется необоснованным, что это должно поддерживаться.
Однако не похоже, что есть удобный способ сделать это, не так ли? Спасибо.