Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sunspot rails: include associated models when calling .results

Let's say that I want to search for Events in my app. When I display the results, I want to display who created the event, for instance.

Is there any way to add .includes(:user) somewhere, to avoid unnecessary queries (one for each event)? I can't find it in the doc. Should I just index the user name with the event? But I'd have to keep the user info up to date...

Thanks

like image 661
Robin Avatar asked Nov 26 '11 23:11

Robin


3 Answers

Found the answer, it was actually quite simple:

Event.search(:include => [:user]) do...
like image 192
Robin Avatar answered Oct 13 '22 02:10

Robin


This is an updated answer, if We need to include an nested association

Then use this

Event.search(:include => {:user => :city})

In this case it will include user and his associated city

like image 44
Abibullah Rahamathulah Avatar answered Oct 13 '22 04:10

Abibullah Rahamathulah


Just in case you need to add a normal and nested include, here's what I needed:

Professional.search(include: [:user, {branches: [:business]}]) do 
like image 42
Abram Avatar answered Oct 13 '22 02:10

Abram