读书人

提取到结合类中

发布时间: 2012-11-12 12:31:57 作者: rapoo

提取到组合类中

如果一个模型中有一些关联字段,例如一个用户有一个address_city和一个address_street,你可以把它们提取到组合类中去。

?

丑陋的

?

class Customer < ActiveRecord::Base  composed_of :address, :mapping => [ %w(address_street street), %w(address_city city)]endclass Address  attr_reader :street, :city  def initialize(street, city)    @street, @city = street, city  end  def close_to?(other_address)    city == other_address.city  end  def ==(other_address)    city == other_address.city && street == other_address.street  endend

?

Rails提供了一个帮助方法composed_of来方便的提取一个组合类,这里我们为Customer添加了一个叫Address的组合类,在Address模型中我们使用了street和city属性,并且和Customer模型中的address_street和address_city对应。

读书人网 >编程

热点推荐