1

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

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

另外,我在其他地方读到,如果我输入一行代码,例如

t.integer user_id

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

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

4

1 回答 1

3

完成此操作后,在您的Order模型上,您将使用 abelongs_to :user来生成关系并利用外键。

如果您希望能够从UserOrder,您很可能是一对多的,所以您必须在has_many :orders上进行User

这是Rails 中的关联文档。这是vs的具体文档belongs_tohas_one

于 2013-11-06T19:20:52.540 回答