On Tuesday, May 12, 2015 at 10:48:15 AM UTC-7, Janko Marohnić wrote:
>
> Hi Jeremy,
>
> In my JSON API I'm allowing clients to pass in associations which they 
> want to use for a retrieved object:
>
> GET /users?include=quizzes.questions,posts
>
> For that to be performant, I would like to eager load the requested 
> associations. I was first thinking of parsing that "include" query, and 
> eager loading the specified associations. It's fairly easy to implement, 
> but I came to a wall when I need to eager load on a single object. The 
> reason why I can't eager load on the dataset before fetching a single 
> object is because it needs to happen dynamically during the serialization 
> process; I give the serializer the object to serialize, which can be a 
> dataset or a single instance, and then the serializer checks for the 
> "include" query and calls eager loading.
>
> What I was thinking, can I just have all my associations eager loaded by 
> default? This seems to solve the case perfectly, because the query will 
> happen only when you request the associations, meaning only associations 
> that you are using will be fetched. So then I never need to think about 
> eager loading, right? :)
>
> Of course, that's my naive opinion, but I'm curious are there any 
> downsides of this approach? Is it currently possible to tell Sequel to 
> eager load all associations associations for a model when instantiating its 
> dataset?
>

You may want to look into the tactical_eager_loading plugin, which can do 
automatic eager loading for associations (without specifying them in 
advance via Dataset#eager), assuming that the object on which you are 
calling the association method was retrieved via Dataset#all.

Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to