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