【问题标题】:Reference with custom name and foreign key使用自定义名称和外键引用
【发布时间】:2016-03-25 20:31:41
【问题描述】:

我在 Rails 5 上,有一个 User 模型。

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

在搜索答案时,我只找到了如何在迁移中添加列,而不是在创建新表时。 create_table :books 的下面会是什么样子?

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

【问题讨论】:

  • 提示:不要忘记依赖的 :destroy 或 nullify 并在此列上添加索引。 (我已经编辑了我的答案)

标签: ruby-on-rails foreign-keys rails-migrations ruby-on-rails-5


【解决方案1】:

你可以使用 author_id:整数

然后在你的用户模型中:

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'

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

【讨论】:

    猜你喜欢
    • 2012-06-24
    • 1970-01-01
    • 2015-08-02
    • 2019-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多