I have an association user.lessons. Sometimes i just want the lessons,
other times i want the lessons to eager-load one of their own
associations, 'assets'. Theres a couple of ways i can see to deal with
this and i'm not super happy with any of them.
approach 1) Make two associations:
has_many :lessons
has_many :lessons_with_assets, :class_name => "Lesson", :include =>
[:assets]
#then, if i want the assets, call
@user.lessons_with_assets
This is actually my favorite but it still feels a bit clumsy
approach 2) Don't use the association if i want to eager load
#just do a regular find
Lesson.find_all_by_user_id(@user.id, :include => [:assets])
Is there another way? This example is simple but i have other
associations that go through join tables and are polymorphic (eg using
the has_favorite plugin) that are a bit more arsey to use.
aha...so, if i have lots of different associations (in user and other
classes) that return a collection of lessons i can just add
".with_assets" to the end? eg