Tire: Eager loading associations from multiple models

I am using elasticsearch for querying in my application. Lets say there
are 2 models

Class Topic
has_many :posts
and

Class Article
has_many :comments

I want to do a combined search on both these models and my query looks
like:

Tire.search [Article, Topic], {:load => {:include => [:posts,
:comments]}} do |search|

end
This is where I encounter a problem. I get the

Association named comments not found

error. I think this is because Topic model doesn’t have the association
comments and I think the same thing will happen for posts with the
Article model.

Is there anyway to solve this problem? I was thinking maybe something
like

:include => [‘topic.posts’, ‘article.comments’]

Please help me out.

On Tuesday, 17 December 2013 02:03:47 UTC-5, Ruby-Forum.com User wrote:

error. I think this is because Topic model doesn’t have the association
comments and I think the same thing will happen for posts with the
Article model.

Is there anyway to solve this problem? I was thinking maybe something
like

:include => [‘topic.posts’, ‘article.comments’]

This does not appear to be possible with the stock Tire gem:

https://github.com/karmi/retire/issues/762

You may want to try applying the changes in that issue. Your example
would
look like:

Tire.search [Article, Topic], {:load => { Article =>{ :include =>
:comments}, Topic => { :include => :posts } } } do |search|

–Matt J.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs