我有一个现有的工厂(订单),我正在尝试建立一个有效继承它的新工厂。它看起来像这样:
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
放在父工厂中,我会收到同样的错误。
非常感谢任何帮助。
感谢。
答案 0 :(得分:0)
假设您的模型具有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)
答案 1 :(得分:0)
尝试运行rails c test
,然后检查您的专栏(如果有)。如果不是,那么这与您的测试数据库有关,那么您需要使用RAILS_ENV=test rake db:migrate
在测试环境中运行迁移,如果没有任何反应,请删除schema.rb,然后再次运行
答案 2 :(得分:0)
尝试将值放在大括号中,如下所示:
factory :order_with_domain, :parent => :order do |o|
o.order_provider { 'DomainNameHere' }
end
的原因