Currently, when you call Work.find(id).approved_collections on a work that has at least one approved collection, it generates an extra database query:
The first query, of course, is the work being loaded from Work.find(5). The second query loads the approved_collections, just as desired. But the third query loads every single CollectionItem in one of the work's approved collections (not just the work's CollectionItems). This means that if you have a single work w in a collection with thousands of collection items, calling w.approved_collections will load every one of those thousands of CollectionItems.
This shouldn't happen. The third query is the result of a mistake in the definition of approved_collections, and should disappear when the definition is fixed.
Note that this also affects user_approved_collections and rejected_collections.
Go into the rails console.
Make sure that ActiveRecord::Base.logger.level is set low enough that you see SQL queries.
Find a work with at least one approved collection.
Call Work.find(id).approved_collections, and make sure that it results in exactly two database queries.