私はモデルを持っていますSport
。Cricket
単一テーブルの継承を使用して、他に 2 つのモデルがFootball
あるため、
class Cricket < Sport and class Football < Sport
これら 2 つのモデルを、モデル ディレクトリ内の sports というサブフォルダーに配置しました。タイプ列をに追加しSport
、値をCricket
またはとして配置しましたFootball
。適切なものは何でも。Cricket.new
また、 orを使用してオブジェクトを作成することもできましたFootball.new
。
この構造は、Rails 3.2.6 まで正常に機能します。
しかし、Rails 3.2.11 では、サブフォルダー内のすべてのモデル ファイルをモジュール化する必要があります。したがって、現在は次のようになります。
module Sports
class Cricket < Sport
現在、レールはクラスCricket
またはFootball
単独でロードできません。だから、Cricket.new
またはFootball.new
動作しません。もしそうならSports::Cricket.new
、タイプ列はクラス名でなければならないので、それは私にとって問題ですSports::Cricket
。
単一テーブルの継承を機能させるには、Rails 3.2.11 で何をすべきですか? Sports::Cricket
タイプ列のように値を入れたくありません。また、サブディレクトリ構造を削除したくありません。