1

私は3つのモデルを持っています

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が返されます。私が間違っていることであるか、クエリを2つの部分に分割する必要があります。

4

1 に答える 1

0

プットを移動すると役立つ場合があります。

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

または、map/collect を使用することをお勧めします。

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

それはあなたがやろうとしていることに帰着すると思います。

于 2013-03-14T20:42:39.893 に答える