2

Rails3.2とMongoid2.4を使用します。embeds_manyorganization_membersというレガシーモデルOrganizationがあります。これは次のようになります。

class Organization
  include Mongoid::Document

  embeds_many :organization_members
end

class OrganizationMembers
  include Mongoid::Document
  embedded_in :organization
end

私がやりたいのは、メンバーにアクセスするために使用する方法を、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

ただし、church_membersが定義されていない場合でも、organization.membersは空の配列を返し、organization.organization_membersは以前のドキュメントを返します。

以前の埋め込みコレクション名を使用し、新しいメソッド呼び出し(Organization#organizationsではなくOrganization#members)を介してそれにアクセスするようにMongoidを説得するにはどうすればよいですか?

4

1 に答える 1

6

embeds_manyと呼ばれるオプションがありますstore_as

class Organization
  include Mongoid::Document

  embeds_many :members, 
              class_name:"OrganizationMember", 
              store_as: 'organization_members'
end
于 2012-07-27T20:20:26.273 に答える