我正在将Rails(5.1)应用程序从使用Ruby 2.3.3
升级到Ruby 2.5.0
。
我有以下FactoryBot(4.8.2
)工厂
FactoryBot.define do
factory :training do
transient do
assigned_instructor { create(:user) }
end
description 'training description'
instructor { assigned_instructor }
end
end
用户工厂看起来像
FactoryBot.define do
factory :user do
sequence(:full_name) { |n| "John Doe#{n}" }
sequence(:email) { |n| "john.doe#{n}@example.com" }
role { create(:role, activities: [create(:activity, name: 'activity')]) }
end
end
当我运行任何创建training
的规范时,我会
Failure/Error: assigned_instructor { create(:user) }
TypeError:
coerce must return [x, y]
如果我创建用户并将其传递给工厂,则不会发生这种情况。
create(:training, assigned_instructor: create(:user))
我应该注意Ruby 2.5中的任何变化吗?
仅供参考,所有创建用户的规范都按预期工作。