2016-06-30 3 views
1

У меня есть следующие модели:Как использовать ассоциации Active Record с ElasticSearch?

class Document < ActiveRecord::Base 
    include Elasticsearch::Model 
    include Elasticsearch::Model::Callbacks 

    belongs_to :user 
    belongs_to :authentication 


class Authentication < ActiveRecord::Base 
    belongs_to :user 
    has_many :documents 

Я запрашиваю упругий поиск в моем контроллере следующим образом:

@documents = Document.search params[:q] 

@documents заполняется правильно, но я больше не может пользователя ActiveRecord ассоциация, как так:

@documents.first.authentications.name 

я получаю следующие ошибки:

undefined method `authentication' for #<Elasticsearch::Model::Response::Result:0x007fd07929f5a8> 

Любые идеи о том, как я могу сделать эту работу или есть лучший способ справиться с этой необходимостью?

Благодаря

ответ

1

Я думаю, что у вас есть опечатка там во время вызова @documents.first.authentications.name. Обратите внимание, что у вас есть ассоциация belongs_to :authentication.

Пожалуйста, попробуйте @documents.results или @documents.records перед тем, как позвонить first. Итак, попробуйте @documents.records.first.authentications.name.