2012-06-04 121 views
0

我有我的第一個模型Contact與現場:email,我需要這個相同的字段:email在我的模型Customer與現場:email這是在我的模型Contact的價值。Ruby on Rails的獲取信息模型的另一個模型

我用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 

感謝。

回答

1

如果您使用的是activesupport,那麼委託人應該完成這項工作。

在customer.rb

delegate :email, :to => :contact 
0

你可以只寫自己的setter /吸氣

class Customer 
    include Mongoid::Document 

    embeds_one :contact 

    def email 
    contact.email 
    end 

    def email=(string) 
    contact.update_attributes(:email => string) 
    end 
end