ruby-on-rails - FactoryBot 事件 ID
问题描述
我有一个工厂,看起来像:
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
因此,如果我可以将新工厂以外的其他东西传递给协会,那可能会奏效。我想做的是通过父工厂。那可能吗?我可以通过其他方式实现这一目标吗?
解决方案
交叉引用可以用after
子句解决,如下所示:
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
推荐阅读
- apache-kafka - Kafka 集群从 PLAINTEXT 更新到 SASL_PLAINTEXT,无法让 Mirrormaker 工作
- javascript - 如何根据变量显示条件图像?
- c - c - 网络数据包嗅探+分析
- python - 如何使用 pyqt4 在 qline 编辑中使用空格键
- docker - GitLab 管道:zip:在 docker 映像上安装 zip 后找不到命令?
- android - 相同的分辨率不同的屏幕尺寸
- python - 如何对不完整的数据应用 scipy.signal.filtfilt()
- django - Django sitemap.xml 在生产中抛出服务器错误(500)
- .htaccess - 将一台服务器上的多个域重定向到各自的 https://www。目标
- node.js - LUIS,从机器人获取用户响应