我试图在我的潮湿代码中保持DRY并且我在使用地址的各个类之间共享一些地址方法,我试图将它们放在一个模块中,但我不相信我这样做。以下是我想做的事,但我不确定两件事。首先,这将使用包含此模块的类中的地址,第二,我不确定在哪里添加ADDRESS_TYPES东西。
module AddressModule
class << self
def delivery_address
where(address_type: ADDRESS_TYPES.delivery)
end
def billing_address
where(address_type: ADDRESS_TYPES.billing)
end
end
end
第三,上面的代码在包含在例如帐户类中时是否有意义?
答案 0 :(得分:0)
我最终得到了一些更简单的东西......
has_many :addresses, :as => :addressable, :dependent => :destroy
has_one :billing_address, :as => :addressable
validates :billing_address, presence:true
accepts_nested_attributes_for :billing_address,
:allow_destroy => true,
:reject_if => missing_attrs?('street_one', 'zip', 'city', 'country_id')
has_one :delivery_address, :as => :addressable
validates :delivery_address, presence:true
accepts_nested_attributes_for :delivery_address,
:allow_destroy => true,
:reject_if => missing_attrs?('street_one', 'zip', 'city', 'country_id')