我使用tire / elasticsearch进行mongoid搜索,当我更新我的文档索引时,我收到错误未定义方法'as_document':
@document.tire.update_index
undefined method `as_document' for #<Array:0x10a40f870>
我研究了mongoid方法'as_document',发现它只接受单个对象。当我的文档对象没有注释时,“@ document.as_document”返回单个对象并且没有错误,但是当文档有注释时,“@ document.as_document”似乎返回一个数组并返回错误“undefined method” 'as_document'代表#“。
似乎当@document有注释时,它会返回一个哈希数组。
的
有什么方法可以返回数组(数组:0x10a40f870),这样我可以看到它来自哪里?
如何将@document(似乎是一个数组)转换回单个对象,以便它可以通过as_document?
为什么我会收到'未定义的方法as_document'
的
我有一个与评论具有has_many关系的文档模型
Rails:3.2.12, Mongoid:3.1.4
答案 0 :(得分:0)
1。记录器是你的同性恋。我建议在你的逻辑存在的地方打印它,这样你就可以确切地看到你要返回的数组。
这样的事情:
# your logic here
@your_array = ..set
logger.debug "MY ARRAY: #{@your_array}"
如果您可以查看Webrick或您拥有的任何设置,这将至少可以让您了解您正在处理的内容。
2 + 3。 Mongoid将文档存储为哈希数组,这是您可能正在查看的内容(但我没有看到确切的代码)。
我不相信您的文档定义有任何问题,但我会更好地了解Mongoid文档的{Relations Sections] 1
更具体地针对问题2: 查看操作部分。