gpt4 book ai didi

ruby-on-rails - rails 在 2 个现有模型之间创建关系

转载 作者:行者123 更新时间:2023-12-04 06:20:03 24 4
gpt4 key购买 nike

我有 2 个模型:

Account
Profile

创建这些模型在数据库中创建了 2 个表:
accounts
profiles

现在我想添加一个关系:
  • 每个账户可以有多个配置文件
  • 每个配置文件属于一个帐户

  • 我运行了以下命令:
    rails g migration AddAccountToProfiles account:references

    这创建了以下迁移:
    class AddAccountToProfiles < ActiveRecord::Migration
    def change
    add_reference :profiles, :account, index: true, foreign_key: true
    end
    end

    现在我有点困惑:

    为什么迁移说 :profiles:account ?不应该是 :accounts (复数)?

    此外,在创建此迁移之后(或之前),我必须添加 belongs_tohas_many在适当的模型类中吗?

    作为一个附带问题,有没有办法添加 belongs_tohas_many在模型中,并且根据该信息,rails 生成了适当的迁移,而无需我使用 'rails g migration ...' 手动创建迁移。命令?

    最佳答案

    根据 rails documentation , 命令

    rails g migration AddAccountToProfiles account:references

    将生成下面的迁移文件
    class AddAccountToProfiles < ActiveRecord::Migration
    def change
    add_reference :profiles, :account, index: true, foreign_key: true
    end
    end

    由于您指定了 account:references ,那么它假定创建 account_idprofiles表,但您仍然需要在相应的模型文件中添加关系。

    当我们使用 :accounts在迁移文件中,它指的是数据库中的表, :account用作要添加到表中的外键的名称以及后缀 _id
    还有相关信息 here

    关于ruby-on-rails - rails 在 2 个现有模型之间创建关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37616624/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com