工厂机器人未定义方法错误



我有一个现有的工厂(订单(,我正在尝试建立一个有效地继承它的新工厂。它看起来像这样:

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)

相关内容

最新更新