gpt4 book ai didi

ruby-on-rails - 无法使用工厂女孩和 rspec 更新关联对象的属性

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:55 24 4
gpt4 key购买 nike

因此,我有一个工厂可以生成具有多个关联的用户。我不想为每个案例创建一个新工厂,而是想创建对象并修改关联对象的一些属性。

let(:user) do
user = FactoryGirl.create(:user_with_associations)
user.associations.where(some_id: user.default_thing.id).first.some_attribute = Time.now
user.save
user
end

但是如果我调用 puts user.associations.to_yamlit block ,它没有 some_attribute = Time.now 的更新属性.

我错过了什么?谢谢。

最佳答案

一些建议...

首先,你似乎在对抗 FactoryGirl 的力量。恕我直言,更好的方法是将您的自定义代码移到工厂中,例如为您正在构建的任何内容定义一个 FactoryGirl 工厂。

例子:

 let(:user){ FactoryGirl.create(:user_with_time_now) }

恕我直言,这确实是 FactoryGirl 的重点。

其次,如果您使用的是 Rails 和 ActiveRecord,请查看 :inverse_of 以了解关联。这些告诉 ActiveRecord 关联应该循环回到原始对象。

关于ruby-on-rails - 无法使用工厂女孩和 rspec 更新关联对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13984772/

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