require 'factory_bot' FactoryBot.define do factory :order do starts { Time.now } supplier { create :supplier, article_count: (article_count.nil? ? true : article_count) } article_ids { supplier.articles.map(&:id) unless supplier.nil? } created_by { create :user } updated_by { create :user } transient do article_count { true } end # for an order from stock; need to add articles factory :stock_order do supplier_id { 0 } # article_ids needs to be supplied end # In the order's after_save callback order articles are created, so # until the order is saved, these articles do not yet exist. after :create do |order| order.reload end end end