【问题标题】:Is a database migration always necessary when establishing an ActiveRecord association in Rails?在 Rails 中建立 ActiveRecord 关联时是否总是需要数据库迁移?
【发布时间】:2012-12-29 11:23:12
【问题描述】:

许多 Rails 教程将 ActiveRecord 关联的设置描述为需要建立外键的数据库迁移(例如,使用 has_many/belongs_to 关系)。然而其他文档似乎完全省略了迁移部分,只是更新模型、嵌套路由等。

迁移是否总是需要将两种资源绑定在一起,还是仅对某些类型的关联有必要?

【问题讨论】:

标签: ruby-on-rails activerecord migration


【解决方案1】:

相关的表之间必须始终有外键,例如:如果您有两个模型UserTask,则需要存储任务属于哪个用户,因此您始终需要外键关系,您可以在不需要迁移的情况下在数据库中手动创建它们,但这是一种非常糟糕的做法,因为迁移提供回滚,并且在您与其他人在同一项目中工作时必不可少。

【讨论】:

  • 如果始终需要外键,我猜有些文档将迁移部分忽略为“显而易见的”,但对于初学者来说,没有什么是显而易见的——感谢您清除它!
【解决方案2】:

是的,它是创建关联的必要条件。但是在某处我看到了仅为模型中的注释 has_many/belongs_to 属性创建关联的 gem。

【讨论】:

    猜你喜欢
    • 2018-02-28
    • 2018-02-20
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2011-07-08
    相关资源
    最近更新 更多