更改mongoid embeds_many关联名称

Gle*_*enn 2 ruby-on-rails mongodb mongoid ruby-on-rails-3

使用Rails 3.2和Mongoid 2.4.我有一个遗留模型,即组织,embeds_many organization_members.它看起来像这样:

class Organization
  include Mongoid::Document

  embeds_many :organization_members
end

class OrganizationMembers
  include Mongoid::Document
  embedded_in :organization
end
Run Code Online (Sandbox Code Playgroud)

我想要做的是更改我用来访问organization.organization_members成员到organization.members的方法.这就是我所做的:

class Organization
  include Mongoid::Document

  embeds_many :members, class_name:"OrganizationMember"
end

class OrganizationMembers
  include Mongoid::Document
  embedded_in :organization
end
Run Code Online (Sandbox Code Playgroud)

但是,现在organization.members返回一个空数组,organization.organization_members返回以前的文档,即使它没有定义church_members.

如何说服Mongoid使用以前的嵌入式集合名称并通过新的方法调用访问它(组织#成员而不是组织#organization_members)?

Ser*_*sev 6

有一个选项embeds_many,叫做store_as.

class Organization
  include Mongoid::Document

  embeds_many :members, 
              class_name:"OrganizationMember", 
              store_as: 'organization_members'
end
Run Code Online (Sandbox Code Playgroud)