我刚刚启动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直接定义外键。任何帮助将不胜感激。如果我能弄清楚它会省下很多时间。
答案 0 :(得分:3)
执行此操作后,在Order
模型上,您将使用belongs_to :user
生成关系并使用外键。
如果您希望能够从User
转到Order
,那么您可能会成为一对多,因此您必须has_many :orders
{ {1}}。
Here is the documentation用于Rails中的关联。 User
与belongs_to
的{{3}}。