FactoryBot事件ID

时间:2018-09-12 15:51:37

标签: ruby-on-rails ruby testing factory-bot

我有一家工厂,看起来像:

factory :order_with_approval do
   status      'approved'
   association :approval, factory: :approval
end

现在,我需要批准模型来获取订单ID并将其设置为事件ID。通过执行以下操作,我已经能够从另一个方向解决这个问题:

factory :cancellation do
  reason 'a reason'
  cancellation_date Date.current
  association :eventable, factory: :order
end

所以可能的工作是,如果我可以将新工厂以外的东西传递给协会。我想做的是通过父工厂。那可能吗?我可以通过其他方式实现吗?

1 个答案:

答案 0 :(得分:0)

交叉引用可以用shown hereafter子句来解析:

factory :order_with_approval do
  status 'approved'
  association :approval, factory: :approval

  after(:build, :create) do |order, _evaluator|
    order.approval.update_attributes!(eventable: order)
  end
end