使用主键和外键进行Ruby on Rails迁移

时间:2013-11-06 19:15:06

标签: sql ruby-on-rails ruby database

我刚刚启动ROR并为SQLite数据库创建了不同的表,并且在自动生成的表和外键的id方面遇到了一些麻烦。为了创建我的表,我使用了“rails generate scaffold”命令,后跟我需要的属性。我去了db / migrate目录并查看了我刚刚定义的内容。但我不明白我应该如何明确引用外键。我习惯使用Oracle,所以我通常在创建过程中的第一步就完成这个过程,并且已经完成了。

例如,我有一个带有一些常规属性的用户表,例如用户名,密码等。我还有一个订单表,其中包含属性transactionID(自动生成),userID(我希望这是一个FK), PartNo(Products表中的FK键)。我不明白的是如何使用Users表中的自动生成的密钥并将其作为外键包含在Orders表中。

另外,我在其他地方读到了如果我放了一行代码,比如

t.integer user_id

在我的create_orders.rb文件中,它会自动知道这是一个外键!?

我觉得这可能很容易,我错过了一些东西。这是我第一次使用rails,我想我必须通过SQL直接定义外键。任何帮助将不胜感激。如果我能弄清楚它会省下很多时间。

1 个答案:

答案 0 :(得分:3)

执行此操作后,在Order模型上,您将使用belongs_to :user生成关系并使用外键。

如果您希望能够从User转到Order,那么您可能会成为一对多,因此您必须has_many :orders { {1}}。

Here is the documentation用于Rails中的关联。 Userbelongs_to的{​​{3}}。