【发布时间】:2018-07-25 02:58:32
【问题描述】:
我无法弄清楚我的迁移出了什么问题,但它们不起作用,试图从类别中的主键中添加产品的外键 20180724203015_create_categories.rb
class CreateCategories < ActiveRecord::Migration[5.2]
def change
create_table :categories, id: false do |t|
t.string :name
t.text :description
t.integer :category_id, primary_key: true, auto_increment: true
t.timestamps
end
end
end
20180724203105_create_products.rb
class CreateProducts < ActiveRecord::Migration[5.2]
def change
create_table :products do |t|
t.string :name
t.references :category_id, foreign_key: true, index: true
t.timestamps
end
end
end
然而这总是以错误结束,不能添加外键约束
【问题讨论】:
-
多说“行不通”。
-
我正在尝试将产品添加到站点内的类别中,但是数据库中没有存储任何内容,因为它给出了一条错误消息,说明类别必须存在,我认为是因为产品表中的 :category_id 仍然为空,我希望它使用关联的 category_id 填充,我从中创建产品...
-
其实我只需要主键 :category_id 在分类上,外键 :category_id 在产品上,这样我就可以关联表格了。
-
你为什么使用
category_id作为categories的主键而不是传统的id? -
我不确定如何将表从 :id 到 :id 关联到每个表,rails 是否创建 category_id?换句话说,我如何将表从 :id 到 :id 从类别关联到产品?
标签: mysql ruby-on-rails ruby devise