gpt4 book ai didi

ruby-on-rails - 制造 gem 循环依赖

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:37 24 4
gpt4 key购买 nike

在使用 fabrication gem 时,我有一个循环依赖。在这里我会告诉你我做了什么。假设我有 2 个模型:

class User < AR::Base
has_many :messages


class Message < AR::Base
belongs_to :user

因此,它们的制造商将是:

Fabricator(:user) do
# bla-bla-bla
messages(count: 5)
end

Fabricator(:message) do
# bla-bla-bla
user
end

好像还行吧?但是,当我运行 Fabricate(:user)Fabricate(:message) 时,我得到了循环依赖,因为消息的伪造会伪造新用户,伪造新用户会伪造消息他等等。我怎样才能避免这个恶性循环?

最佳答案

在这样的实例中,我通常会有两个 user 制造者。

Fabricator(:user)

Fabricator(:user_with_messages, from: :user) do
messages(count: 5)
end

您也可以这样做来让您的工作正常进行。

Fabricator(:user) do
messages(count: 5) { Fabricate.build(:message, user: nil) }
end

当用户被保存时,消息将由AR自动保存。它将处理设置正确的引用。

关于ruby-on-rails - 制造 gem 循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30943221/

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