什么在Ruby on Rails 3中创建了FOREIGN KEY约束?
我知道默认情况下会创建id
字段,还需要: PRIMARY KEY (
id )
。
外键怎么样?
我有Shops
和Products
表以及以下协会:
Shop: has_many :products Product: belongs_to :shop
在Product
我还有:
t.integer "shop_id"
这意味着是外键,还有:
add_index("products", "shop_id")
但是,如果我导出数据库,我只看到:
KEY `index_products_on_shop_id` (`shop_id`)
我该怎么做才能添加
FOREIGN KEY (`shop_id`) REFERENCES Shop(`id`)
?
您可以使用外国人 gem来为您的应用程序添加外键。 要开始,请将以下内容添加到Gemfile
gem "foreigner"
之后,您可以轻松地在迁移中添加外键,如下所示:
add_foreign_key :products, :shops
这会将product.shop_id
的外来添加到shop.id
有关更多选项(如不同命名的键或自引用表),请参阅文档。
- Rails update_attributes方法是否是在数据库中更新模型的最佳选择?
- 基于字段的嵌套模型的条件顺序
- AWS的未定义方法`find’:: S3 :: Bucket:Class
- Rails 3禁用会话cookie
- Rails模型中的条件validation
- 如何使用belongs_to / has_many关系在Active Admin索引中显示关联模型的属性(Rails 3.2 / Active Admin)
- Heroku – ActionView :: Template :: Error(PG ::错误:错误:列category_products.desc不存在
- Rute进程的互斥锁
- 什么是rails中的`stringify_keys’以及如何在出现此错误时解决它