2

关于活动记录的一件事让我感到困惑(我对 Rails 还是有点陌生​​)。我正在做这样的迁移:

def up
    change_table :slide do |t|
        t.references => :slideable, :polymorphic => true
  end
end

然后我将修改我的模型:

class Slide < BaseModel
  ...
  belongs_to :slideable, :polymorphic=>true
end

class Painting < BaseModel
  ...
  has_one :slide, :as => :slideable
end

class Paper < BaseModel
  ...
  has_one :slide, :as => :slideable
end

为了能够使用关联的双方,我是否还必须对绘画和纸张上的 has_one 关系进行迁移?

slide.painting.name
slide.paper.title
painting.slide.name
paper.slide.name
4

1 回答 1

1

不,has_one不会影响您的数据库。belongs_to是什么将在您的表中实际创建一个外键字段,这就是您需要迁移的原因。

于 2013-04-23T23:16:08.987 回答