2016-12-26 4 views
0

私はAddressableがうまくいきますが、私のモデルの中には住所と国を郵送する必要がありますが、他に単純な住所がほしいと思っています。その国。Railsの懸案事項と条件付き機能

これを行うには良い方法がありますか? includeには変数を渡す方法がありません。たぶんそれはクラスのconstを見ることができます。

おそらくSimpleAddressableの懸念事項には基本的なフィールドがあり、別のアドレス可能な懸念が何らかの形で継承される可能性がありますか?私はオプションとして懸念を見たことがない。

UPDATE

私は、以前self.columns見するつもりだったが、それは私に私のテストケースで奇妙なエラーを与えていました。

答えて

0

http://api.rubyonrails.org/classes/ActiveSupport/Concern.htmlによると、懸念を継承するように見えます。だから、私はAddressableからSimpleAddressableを引き抜きました。

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 
関連する問題