Mongoid 嵌套关联不返回 Object

Posted

技术标签:

【中文标题】Mongoid 嵌套关联不返回 Object【英文标题】:Mongoid nested associations doesn't return Object 【发布时间】:2013-03-14 20:26:19 【问题描述】:

我有三个模型

class User
 include Mongoid::Document
 include Mongoid::Timestamps

 has_many :conversation
end

class Conversation
  include Mongoid::Document
  include Mongoid::Timestamps
  has_many :users
  embeds_many :messages
end

class Messages
  include Mongoid::Document
  include Mongoid::Timestamps

  embedded_in :conversation
end

我正在尝试获取一些用户消息

users.each do |user|
 puts user.conversations.each |conv| conv.messages
end

这将返回 true 而不是我认为应该返回的消息数组。是我做错了什么还是我必须将我的查询分成两部分。

【问题讨论】:

【参考方案1】:

移动 put 可能会有所帮助:

users.each do |user|
 user.conversations.each |conv| puts conv.messages
end

或者我可以建议使用地图/收集。

users.each do |user|
  puts user.conversations.collect |conv| conv.messages
end

我想这取决于你想要做什么。

【讨论】:

以上是关于Mongoid 嵌套关联不返回 Object的主要内容,如果未能解决你的问题,请参考以下文章

mongoid 中的关联

嵌套属性中的 Rails/Mongoid 错误消息

Mongoid查询嵌套embed文档通过属于和嵌入多个

mongoid 中的 inverse_of 是啥意思?

嵌套表单中的链接返回无效关联

Oracle 是不是关联嵌套在任何级别的子查询?