自定义名称和外键引用

Reference with custom name and foreign key

我在 Rails 5 并且有一个 User 模型。

我想创建一个 Book 模型,引用名称为 authorUser 模型。我也想在迁移中设置外键。

在搜索答案时,我只找到了如何在迁移中 添加 列,而不是创建新的 table。 create_table :books 的下图如何?

add_reference :books, :author, references: :users, index: true
add_foreign_key :books, :users, column: :author_id

你可以使用 author_id:integer

然后在你的用户模型中:

has_many :books, foreign_key: :author_id, class_name: "Book", dependent: :nullify

我使用 dependent::nullify 来避免删除记录时的错误,但如果您需要在销毁用户时销毁书籍,则可以使用 dependent::destroy。

和图书型号:

belongs_to :user, foreign_key: :author_id, class_name: 'User'

您应该在此列上添加索引。