findメソッドはレコードの検索に非常に便利で、頻繁に使用されます:参照するレコードをプリフェッチして高価なdbアクセスを避ける。データベースの検索を避けるためにハッシュの配列を検索する
営業担当者がすべての売上を検索するケースがあります。
@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オブジェクトの配列に過ぎないので、これをサポートするのは不合理ではないようです。
しかし、これを行う便利な方法はないようですね。ありがとう。
'@ sales.inspect'とは何ですか? – maprihoda
ハッシュの配列はありません。 –
ああ、私の悪い、デビッドに感謝します。 – Snips