Mongoid 3.0嵌入式1-N查询用于列出所有嵌入字段

时间:2012-07-28 10:18:44

标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongoid

假设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}

获取列表。

1 个答案:

答案 0 :(得分:2)

你给出的循环是正确的,它可以正常工作,但你没有在任何地方保存album.name的任何值。只需将其保存在数组或其他内容中,然后检查数组的内容。我想它会有所有的名字。