在inherited_resource集合中包含mongoid嵌入式文档时的未定义方法

时间:2013-10-01 16:22:55

标签: ruby-on-rails mongoid inherited-resources

我有几个mongoid模型:

class Album
  include Mongoid::Document
  field :name, type: String
  embedded_in :band
end
class Band
  include Mongoid::Document
  field :name, type: String
  embeds_many :albums
end

我试图让inherited_resources将json中的嵌入式专辑包含在乐队中,如下所示:

class BandsController < InheritedResources::Base
  respond_to :html, :xml, :json
  def permitted_params
    params.permit!
  end
protected
  def collection
    @bands ||= end_of_association_chain.includes(:albums)
  end
end

但是在尝试检索波段列表时出现以下错误:

undefined method `eager_load' for Mongoid::Relations::Embedded::Many:Class

知道我可能做错了吗?

1 个答案:

答案 0 :(得分:2)

我非常肯定这里的错误是因为你覆盖了collection方法。 collection是一个mongoid用来在集合中进行操作的内部方法,所以我想如果你覆盖它会导致一些冲突。