根据this answer我试图将STI和多态关联融合在一起,我的代码:
class Post < ActiveRecord::Base
belongs_to :content, :polymorphic => true
end
class Topic < Post #ActiveRecord::Base
has_one :post, :as => :content, :dependent => :destroy
end
class Tutorial < Post #ActiveRecord::Base
has_one :post, :as => :content, :dependent => :destroy
end
在帖子表中,我有content_id
列,content_type
并在表格主题,教程栏body
我如何创建(在irb中)新教程或主题?
我试过Post.topics.new(..., :content => {body: 'my_text'})
但收到错误
答案 0 :(得分:0)
首先,我无法在这里看到STI,因为您在每个模型中继承ActiveRecord,其次您正在创建新主题,但您的语法错误。每个主题都有一个帖子,每个帖子属于一个主题,所以你应该做一些像Topic.post.build(params)来创建一个帖子,如果你想创建一个主题,那么Post.topic.build(prams)