我有Addressable
关注效果很好,但在我的某些模型中,我需要邮寄地址和国家/地区,在其他模式中,我只想要一个简单的地址,并对此做出假设国家。
这样做有好办法吗? include
没有办法传递变量。也许它可以看一下班上的常数。
也许有一种方法可以让SimpleAddressable
关注具有基本字段,并且可以以某种方式继承另一个可寻址关注点?尽管如此,我还没有看到关注继承作为一种选择。
更新
我以前会查看self.columns
,但这在我的测试用例中给了我奇怪的错误。
答案 0 :(得分:0)
根据http://api.rubyonrails.org/classes/ActiveSupport/Concern.html,您似乎可以继续关注。所以,我最终从SimpleAddressable
提取Addressable
。
module SimpleAddressable
extend ActiveSupport::Concern
included do
validates :address, length: { maximum: 200 }, allow_nil: true
validates :city, length: { maximum: 50 }, allow_nil: true
validates :region, length: { maximum: 50 }, allow_nil: true
validates :postal_code, length: { maximum: 20 }, allow_nil: true
end
end
module Addressable
extend ActiveSupport::Concern
include SimpleAddressable
included do
validates :mailing_address, length: { maximum: 200 }, allow_nil: true
validates :mailing_city, length: { maximum: 50 }, allow_nil: true
validates :mailing_region, length: { maximum: 50 }, allow_nil: true
validates :mailing_postal_code, length: { maximum: 20 }, allow_nil: true
belongs_to :country, optional: true
end
end