Rails,模块,查询和我?

时间:2011-02-08 07:27:33

标签: ruby-on-rails-3

我试图在我的潮湿代码中保持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

第三,上面的代码在包含在例如帐户类中时是否有意义?

1 个答案:

答案 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')