2017-09-20 27 views
0

我遵循这个SO post的建议。主菜属于场地。所以我期望entrees表上有一个名为venue_id的外键。我产生了以下内容:在Rails 5中通过迁移添加关系

rails g migration AddEntreeToVenue entree:belongs_to 

它创造了以下迁移:

class AddEntreeToVenue < ActiveRecord::Migration[5.0] 
    def change 
    add_reference :venues, :entree, foreign_key: true 
    end 
end 

但运行DB后:迁移,我看主菜表的外键:

Indexes: 
    "entrees_pkey" PRIMARY KEY, btree (id) 
Referenced by: 
    TABLE "venues" CONSTRAINT "fk_rails_0cf11999c6" FOREIGN KEY (entree_id) REFERENCES entrees(id) 

看起来要做的是将外键添加到场地表中,而不是主菜单表。我做错了什么?

+0

您应该添加对entrees表的引用。做:add_reference:主菜,:场地,索引:真 – bkunzi01

回答

1

您的生成器命令指定Rails应该在Venues上创建一个belongs_to列。你真正想要的是相反的:

rails g migration AddVenueToEntrees venue:belongs_to 

这将创建修改entrees,对venues.id外键约束添加venue_id列迁移。