EagerLoadablePolymorphicAssociation
add eager loading functionality to ActiveRecord's polymorphic association.
Installation
Add this line to your application's Gemfile:
gem 'eager_loadable_polymorphic_association'
And then execute:
$ bundle
Or install it yourself as:
$ gem install eager_loadable_polymorphic_association
Usage
class Paste < ActiveRecord::Base
extend EagerLoadablePolymorphicAssociation
belongs_to :item, polymorphic: true
eager_loadable_polymorphic_association :item, [:snippet, :picture]
end
Paste.with_item.all # => eager load associated snippet or picture
- extend this module
- decrare
eager\_loadable\_polymorphic\_association
during class definition.- first argument is polymorphic association name
- second, pass an array which contains associated objects class names (item_type.under_score).
- step 2 defines new scope
with\_item
, which is the scope to eager load polymorphic objects.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request