2011-07-01 10 views
1

私のRailsアプリケーションでは、さまざまなタイプの企業と人がいるSTIを使用します。たとえば、私はサプライヤー、メーカー、顧客を会社のタイプとして持っています。私は従業員、連絡先、顧客をPeopleのタイプとして持っています。Railsでの会社と個人の顧客のモデリング

ここでは、顧客または個人顧客のいずれかになる顧客を参照したいと思います。これら2つの異なるエンティティを1つに結合するために使用する方法は?だから私は注文書から顧客を参照することができますか?

あなたが使用いずれかの可能性が

答えて

0

Order  
    belongs_to :company 
    belongs_to :person 
end 

そして、2つの外部キーを持っている - そして、及びそれらのいずれかが記入されていることを確認し、その後、多分どちらかを返すの顧客 'メソッドを追加するために、いくつかの検証を追加どのようなものが使用されているかに依存します。

または、これらの2つの同じ2つの外部キーを持つ個別の顧客モデル(および表)を作成し、次に注文は簡単にbelong_to :customerにすることができます。この第2の方法は、顧客レベル(例えば、与信限度額または請求明細)に追加データを格納したい場合には好ましく、長期的にはより清潔にすることができる。

また、ビジネスロジックを再考し、すべての注文が会社の従業員であっても会社に代わって購入していても、その人物に属することを主張することができます。

f

関連する問題