belongs_to的反向关联 - has_one

时间:2013-04-23 21:59:06

标签: ruby-on-rails-3 activerecord

关于活跃记录的一件事让我感到困惑(我对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

1 个答案:

答案 0 :(得分:1)

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