我遵循了这个SO post的建议。主菜属于场地。所以我希望在主菜表上有一个名为venue_id的外键。我生成了以下内容:
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:migrate之后,我查看了entrees表,没有外键:
Indexes:
"entrees_pkey" PRIMARY KEY, btree (id)
Referenced by:
TABLE "venues" CONSTRAINT "fk_rails_0cf11999c6" FOREIGN KEY (entree_id) REFERENCES entrees(id)
它似乎做的是将外键添加到场地表,而不是主菜表。我做错了什么?
答案 0 :(得分:1)
您的生成器命令指定Rails应在场地上创建belongs_to
列。你真正想要的是相反的:
rails g migration AddVenueToEntrees venue:belongs_to
这将创建一个修改entrees
的迁移,在venue_id
上添加一个带有外键约束的venues.id
列。