提取到组合类中
如果一个模型中有一些关联字段,例如一个用户有一个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对应。