我有两个模型Artist
和Painting
。
我添加了以下迁移并执行了rake db:migrate
class AddArtistReferenceToPaintings < ActiveRecord::Migration
self.up do
change_table :paintings do |t|
t.references :artist
end
end
end
这不会改变数据库中的任何内容。我做错了什么?
答案 0 :(得分:1)
尝试
t.belongs_to :artist
代替
t.references :artist
但是如果你在irb控制台上测试,你的变体也应该工作。运行'reload'进行更新。
答案 1 :(得分:1)
似乎没错。
您是否已经运行此迁移并添加了后者?如果是,则从schema_migrations创建新的OR删除版本。
方式: 添加外键列
change_table(:suppliers) do |t|
t.references :company
end
它创建一个company_id(整数)列
添加多态外键列
change_table(:suppliers) do |t|
t.belongs_to :company, :polymorphic => true
end
它创建company_type(varchar)和company_id(整数)列。
有关详细信息,请参阅link。