Я пытался настроить модель наследования одной таблицы в Rails 3, в которой родительский класс также содержит отношение has_many. К сожалению, я не могу заставить его работать. Вот три класса в качестве примера:
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")
Я всегда получаю следующую ошибку:
«Ошибка типа: невозможно преобразовать строку в целое число»
Я понятия не имею, как решить эту проблему, и попытался найти решение онлайн безрезультатно. Кто-нибудь, кто имеет опыт работы с моделями ИППП, видит что-то не так? Вот ссылка на документацию по методу create, если это поможет в диагностике проблемы:
http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-create