2016-06-30 15 views
1

Ich habe folgende Modelle:Wie verwenden Sie aktive Datensatzzuordnungen mit 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 

I Elasticsearch in meinem Controller abfragen kann wie folgt dar:

@documents = Document.search params[:q] 

@documents richtig bevölkert, aber ich kann nicht mehr Benutzer Active Verbände wie so:

@documents.first.authentications.name 

ich folgende Fehler:

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

Irgendwelche Ideen, wie ich das schaffen kann oder gibt es einen besseren Weg, um mit diesem Bedürfnis umzugehen?

Dank

Antwort

1

Ich denke, Sie einen Tippfehler gibt, während @documents.first.authentications.name aufrufen. Beachten Sie, dass Sie eine Zuordnung belongs_to :authentication haben.

Bitte versuchen Sie @documents.results oder @documents.records vor dem Anruf first. So versuchen Sie @documents.records.first.authentications.name.