gpt4 book ai didi

ruby-on-rails - 如何打印 FactoryGirl.create 进行的 Model.create 调用?

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

有什么办法可以打印FactoryGirl.create调用的ActiveRecord操作吗?

假设我们有一个模型Foo 的工厂:foo。运行 FactoryGirl.create(:foo),为模型 Foo 创建一个数据库条目,并为不同的模型创建一些其他条目,比如 BarCar

有什么方法可以将这个 FactoryGirl.create(:foo) 命令转换成它的底层 Model.create 命令?

例如

FactoryGirl.create(:foo)

应该闯入

Foo.create(name: 'some name', ...)
Bar.create(field_value: 'asdf', ....)
Car.create(field_value: 'asdf1231', ....)
...

最佳答案

factory_girl 在创建模型时会调用 save!,因此您至少可以通过在每个模型中覆盖 save! 来完成部分操作。将其放入 config/initializers/print_model_save.rb:

class ActiveRecord::Base
alias_method :original_save!, :save!

def save!
puts "#{self.class.name}.create! #{attributes.symbolize_keys.inspect}"
original_save!
end

end

这适用于简单的属性。复杂的属性可能需要更复杂的参数打印。试试看。

关于ruby-on-rails - 如何打印 FactoryGirl.create 进行的 Model.create 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36100510/

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