我有以下型号:
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>
关于如何使这项工作或有更好的方法来处理这种需求的任何想法?
由于
答案 0 :(得分:1)
我认为你在调用@documents.first.authentications.name
时有错字。请注意,您有一个关联belongs_to :authentication
。
请在致电@documents.results
之前尝试@documents.records
或first
。
所以试试@documents.records.first.authentications.name
。