バックグラウンド
A
対応するテーブルで名前が付けられたモデルを持つRails3アプリがありますas
。今、私はB
まったく同じように機能するA
が、他のいくつかの関連付けとメソッド(にあるもの以外A
)を持つ新しいモデルが必要です。
問題
STI(単一テーブル継承)を使用することにしました。A < BaseModel
とのようなことができることはわかっていますが、という名前のテーブルを想定したコードはB < BaseModel
すでにたくさんas
あり、非常に多くの作業が必要になります。
だから私は、抽象的ではないB < A
ところをやろうとしています。に列A
を追加しました。これでモデルは完全に機能しますが、モデルは継承について何も知らず、列を完全に無視するため、列を空にすることはできないと表示されます。行も返します。type
as
B
A
type
A.create!
type
A.all
B
私が試したこと
- 列のデフォルト値
A
を使用しますtype
。これは機能しますが、問題の一部しか解決しません - モデルでデフォルトのスコープを使用します
A
。このアプローチの問題は、両方のモデルのすべての行を除外することです。B
質問
B < A
どのモデルも抽象的ではないRailsでどのように達成できますか?- 他に良い選択肢はありますか?