Please notice, this is not a question about adding a WHERE condition to an association but a rather advanced question about how to alter the JOIN clause when using eager
This does not solve the problem stated.
You cannot alter the JOIN generated by calling eager_load
like you want. The WHERE clause is your only option, and it has the exact same effect as the condition on your JOIN. Here it is, even if you didn't want it:
Parent.eager_load(:grades).where("grades.level = 'A+'")