Preload has_many through with one query