强制创建具有 belongs_to 关联的记录

Force create a record with a belongs_to association

我有 2 个模型。工作和用户。用户 has_many :jobs 和工作 belongs_to :user

我是否可以在不定义用户的情况下使用 Job.create(location: "test") 创建工作记录?如果我目前尝试这样做,我会收到 Couldn't find User with 'id'= 错误。我认为这是因为协会。

有什么方法可以在没有用户 ID 的情况下执行此操作?我只想稍后添加 user_id 。

谢谢!

抱歉,我意识到这是我代码的不同部分不允许我这样做。你可以很容易地做到这一点。

明确地说,是的这是可能的。

模型中的关联仅用于在数据表中设置 foreign keys。因此,如果您想创建一个 Job(虽然它是 belongs_to :user),您可以设置所有您想要的属性,然后稍后更新 :user_id

这是一个很好的reference:

这显示了典型 belongs_to / has_many 关联的数据表结构。关联这两个对象时,需要有正确的foreign_key,你可以随意填充它们。