Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Mongoid 3.0嵌入式1-N查询,用于列出所有嵌入式字段_Ruby On Rails_Ruby_Ruby On Rails 3_Mongodb_Mongoid - Fatal编程技术网

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

Ruby on rails Mongoid 3.0嵌入式1-N查询,用于列出所有嵌入式字段,ruby-on-rails,ruby,ruby-on-rails-3,mongodb,mongoid,Ruby On Rails,Ruby,Ruby On Rails 3,Mongodb,Mongoid,假设模型如下所示: 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|

假设模型如下所示:

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
我怎样才能得到每个乐队专辑名的完整列表

我的意思是,我必须首先得到所有乐队,然后每个乐队我都会得到他的名字,我尝试了以下几种变体:

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
但不起作用,我错过了什么

更新

下面,它仅适用于添加阵列:

album_array = []
Band.all.each do |band|
  band.albums.all.each do |album|
    album_array << album.name
  end
end

返回列表。

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