gpt4 book ai didi

ruby-on-rails - 在 Rails 中播种外键?

转载 作者:行者123 更新时间:2023-12-04 05:14:28 25 4
gpt4 key购买 nike

我正在 Rails 中创建用户与其个人资料之间的关系

User has_one :profile
Profile belongs_to :user

我知道在正常情况下 Rails 会自动创建这两个模型之间的外键关系。但是,当我以下列方式向数据库中植入信息时,创建了许多用户并创建了许多配置文件,那么我如何确保,例如,Joe 的配置文件与 Joe 的用户帐户相关联。
User.create!(email: "j@gmail.com", password: "blahblah", encryptedpass: "3838")
Profile.create!(first_name: "Joe", last_name: "Frank", address: "43 Flint Road", phone: "604 345 678", )

User.create!(email: "anne@gmail.com", password: "blahblahblah", encryptedpass: "4567")
Profile.create!(first_name: "Anna", last_name: "Jones", address: "43 Boogy Road", phone: "604 345 678", )

...想象成千上万的用户和配置文件以这种方式播种....

我是否必须在配置文件上设置 user_id 外键,并且为了播种它,我是否只需要创建一个外键 ID? rails 可以为我生成它吗?例如,如果我在 Joe 的个人资料中将外键设为 user_id: 1,我如何确定他的用户模型实例将为“1” 换句话说,如果我手动设置他的 user_id 外键,我如何确保它将匹配用户模型的 id?

最佳答案

您可以使用 create_profile! method (当你声明 has_one :profile 时由 Rails 创建

u = User.create!(email: "j@gmail.com", password: "blahblah", encryptedpass: "3838")
u.create_profile!(first_name: "Joe", last_name: "Frank", address: "43 Flint Road")

关于ruby-on-rails - 在 Rails 中播种外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14466259/

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