0

我有我的第一个Contact带有该字段的模型,:email并且我的模型中需要这个相同的字段以及我:email的模型Customer中的字段值。:emailContact

我将 mongoID 用于 ORM,所以这是我的第一个模型

class Contact
  include Mongoid::Document
  include Mongoid::Timestamps
  embedded_in :customer
  embedded_in :employee
  embedded_in :restaurant

  field :city
  field :street
  field :zip_code
  field :country
  field :phone_number
  field :email

和我的第二个模型客户

class Customer
  include Mongoid::Document
  include Mongoid::Timestamps
  embeds_one :contact

  devise :database_authenticatable, :lockable, :recoverable,
         :rememberable, :registerable, :trackable, :timeoutable, :validatable,
         :token_authenticatable

  attr_accessible :email, :password, :password_confirmation

  field :first_name
  field :last_name
  field :password
  field :gender
  field :encrypted_password

谢谢。

4

2 回答 2

1

如果您使用的是 activesupport,那么委托应该完成这项工作。

在客户.rb

delegate :email, :to => :contact
于 2012-06-04T17:08:08.040 回答
0

您可以编写自己的 setter/getter

class Customer
  include Mongoid::Document

  embeds_one :contact

  def email
    contact.email
  end

  def email=(string)
    contact.update_attributes(:email => string)
  end
end
于 2012-06-04T17:52:28.100 回答