2011-11-11 14 views
0

自分のユーザーモデルにSTIを使用しています。私はUserクラスと、SellerとCustomerのサブクラスを持っています。ユーザーは両方になることはできないので、このケースではSTIは問題ないと思います。私は、ユーザーインスタンスの作成を制限しないので、唯一の売り手または顧客が作成することができますどのようにSTI実装に関する2つの簡単な質問

  1. : は、私は2つの質問がありますか?私はタイプの存在を検証することができたと思うが、それは私には非常に正しいと感じない。

  2. STIを使用している売り手や顧客に、別のフィールドを追加できますか?どうやって?

答えて

1

あなただけ行うことで、ユーザーと顧客の保存を許可することができます。

validates_inclusion_of :type, :in => [:customer, :user] 

限り、あなたの2番目の質問のように、答えは:列を追加します。顧客のために列を追加すると、ユーザーモデルはそれらを無視しますので、大きな問題はありません。あなたのユースケースにもよりますが、場合によってはSTIを避けるのが最善です。

+0

あなたは 'add_column:child_name、:field_name、:type_name'を試してみませんか?それは私にとってはうまくいかないようです。 – Rishi

関連する問題