【问题标题】:Rails and Assigining Association ObjectRails 和分配关联对象
【发布时间】:2020-09-18 06:02:02
【问题描述】:

我实际上经历了不同的联想,并想出了一些我觉得有点奇怪的东西。

我有一个关联

class Account < ApplicationRecord
end

class Supplier < ApplicationRecord
  has_one :account
end

迁移文件

class AddSupplierToAccount < ActiveRecord::Migration[6.0]
  def change
    add_reference :accounts, :supplier, foreign_key: true
  end
end

在我学习的时候,我没有把它做成双向的。

我进入 Rails 控制台并创建了一个帐户对象和一个供应商对象。然后我像这样分配帐户对象:

supplier.account = account

但没有保存供应商对象,事务在分配时已提交到数据库。这是应该的方式还是我做错了什么?如果是这样,为什么?

【问题讨论】:

    标签: ruby-on-rails-5 associations field assignment-operator has-one


    【解决方案1】:

    Account 下添加belongs_to :supplier,然后查看此页面,了解为什么应该: https://guides.rubyonrails.org/association_basics.html

    作为 Rails 开发人员,阅读整个 Rails 指南以了解您正在使用的 Rails 版本真的很重要,那里有大量有用的信息,并且可能 80% 的常见 Rails 问题都可以通过它包含的信息来解决。

    【讨论】:

    • 谢谢..当我变红时,它就有了问题的答案。对象何时被保存?
    • 我得看看你在分配之前是如何设置account 对象的。但是,通常我会在创建帐户时明确定义供应商。 Acount.create(..., supplier_id: supplier.id, ...)。我尽量避免以这种方式使用关联,因为它会变得混乱,而且你在做什么不太明显。
    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    相关资源
    最近更新 更多