我有一个现有的工厂(订单(,我正在尝试建立一个有效地继承它的新工厂。它看起来像这样:
factory :order_with_domain, :parent => :order do |o|
o.order_provider 'DomainNameHere'
end
这样做并使用order_with_domain
运行规范后,我受到了以下欢迎:
undefined method `order_provider=' for #<Order:0x00007fc70d9fafc0>
Did you mean? order_provider
如果我尝试将order_provider
放在父工厂中,我会收到同样的错误。
任何帮助都非常感谢。
谢谢。
尝试运行rails c test
然后检查您的列是否存在。如果不是,则这是测试数据库的问题,您需要使用 RAILS_ENV=test rake db:migrate
在测试环境中运行迁移。如果没有任何反应,请删除schema.rb
然后再次运行迁移命令。
尝试将值放在大括号中,如下所示:
factory :order_with_domain, :parent => :order do |o|
o.order_provider { 'DomainNameHere' }
end
这是思想机器人的原因
假设您的模型具有order_provider
属性或order_provider=
方法,如上面注释@moveson。
我会使用traits
.像这样:
factory :order do
# ... original factory stuff
trait :with_domain do
order_provider 'DomainNameHere'
end
end
然后使用它:
order_with_domain = FactoryBot.create(:order, :with_domain)