假设Embedded 1-N模型如下:

class Band
  include Mongoid::Document
  field :group_name

  embeds_many :albums
end

class Album
  include Mongoid::Document
  field :name
  field :sold

  embedded_in :band
end

如何获取每个乐队的完整专辑名称列表?
我的意思是我必须先得到所有的乐队,然后对每个乐队我都会得到他的名字,我尝试了以下几种变体:
Band.all.each do |band|
  band.albums.all.each do |album|
    album.name
  end
end

但没用,我缺了什么?
更新
abhas之后,它只需添加数组:
album_array = []
Band.all.each do |band|
  band.albums.all.each do |album|
    album_array << album.name
  end
end

然后
album_array.each{|a|a}

把名单拿回来。

最佳答案

您给出的循环是正确的,它工作得很好,但是您没有在任何地方保存任何值album.name。只需将它保存在数组或其他东西中并检查数组的内容。我想它会有所有的名字。

关于ruby-on-rails - Mongoid 3.0嵌入式1-N查询用于列出所有嵌入字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11700139/

10-10 14:39