通过Rails中的迁移添加关系5

时间:2017-09-20 23:45:05

标签: ruby-on-rails

我遵循了这个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)

它似乎做的是将外键添加到场地表,而不是主菜表。我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

rails g migration AddVenueToEntrees venue:belongs_to

这将创建一个修改entrees的迁移,在venue_id上添加一个带有外键约束的venues.id列。