-1

初めてモンゴイドを使っています。件名、本文、to、cc、bcc 受信者の配列を持つ電子メールのコレクションを保存したいと考えています。例:

{to: [{email: 'andrew@example.com', name: 'Andrew'}], cc: ...

ただし、Mongoid を使用してこのデータをモデル化する方法がわかりません。これらの用語は埋め込みドキュメントと呼ばれていると思いますが、私が試したすべてが正しく機能していないようです。Mongoid でモデルを正しく作成するにはどうすればよいですか?

4

1 に答える 1

2

これが解決策です。複数のフィールドでクラスを再利用する場合は、クラス名を指定できます。

class Email
  include Mongoid::Document

  embeds_many :to_recipients, :class_name => "Recipient"
  embeds_many :cc_recipients, :class_name => "Recipient"
  embeds_many :bcc_recipients, :class_name => "Recipient"    
  embeds_one :from, :class_name => "Recipient"

  field :subject, type: String
  field :body_text, type: String
  field :body_html, type: String
end

class Recipient
  include Mongoid::Document
  field :email_address, type: String
  field :name, type: String
  validates :email_address, :presence => true
  embedded_in :emails
end
于 2012-04-25T23:25:42.357 に答える