0

根据这个答案,我正在尝试将 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_idcontent_type 在表中,主题,教程列body

我如何创建(在 irb 中)新的教程或主题?

我试过了Post.topics.new(..., :content => {body: 'my_text'})

但得到一个错误

4

1 回答 1

0

首先,我在这里看不到 STI,因为您在每个模型中都从 ActiveRecord 继承,其次您正在创建新主题,但您的语法错误。每个主题都有一个帖子,每个帖子都属于一个主题,所以你应该做类似 Topic.post.build(params) 来创建一个帖子,如果你想创建一个主题,那么 Post.topic.build(prams)

于 2013-10-12T18:29:53.377 回答