親クラスにも has_many 関係が含まれているRails 3で単一テーブル継承モデルをセットアップしようとしています。残念ながら、私はそれを機能させることができません。例として、次の 3 つのクラスを示します。
class Article < ActiveRecord::Base
has_many :paragraphs, :dependent => :destroy, :autosave => true
end
class Paragraph < ActiveRecord::Base
belongs_to :article
end
class SportsArticle < Article
end
そして、これをセットアップするために使用される移行は次のとおりです。
class AddTables < ActiveRecord::Migration
def self.up
create_table :articles do |t|
t.string :type, :null => false # for STI
t.string :title, :null => false
t.timestamps
end
create_table :paragraphs do |t|
t.references :article, :null => false
t.timestamps
end
end
def self.down
drop_table :articles
drop_table :paragraphs
end
end
このように設定して、新しい SportsArticle を作成しようとすると、たとえば次のようになります。
SportsArticle.create(:title => "Go Giants")
私は常に次のエラーが発生します。
「TypeError: 文字列を整数に変換できません」
この問題を解決する方法がわかりません。オンラインで解決策を見つけようとしましたが、役に立ちませんでした。STI モデルを使用した経験のある人は何か間違っていると思いますか? 問題の診断に役立つ場合は、create メソッドに関するドキュメントへのリンクを次に示します 。