FactoryGirl.create issues "LocalJumpError: no block given (yield)" with Rails 5
FactoryGirl.create issues "LocalJumpError: no block given (yield)" with Rails 5
我正在将我的应用程序升级到 Rails 5
当 运行 启用 rails 5 的测试时,我开始在几个对象创建语句上得到 "LocalJumpError: no block given (yield)",例如:
let!(:entity) { create(:entity) }
我升级到 Rails 5.0.0 后开始出现这种情况
我尝试在该行上使用构建而不是创建,但在这种情况下不会出现错误。
有没有人遇到过类似的问题?
我的实体工厂是这个:
FactoryGirl.define do
factory :entity do
entity_type 'A'
account { create(:account) }
ilk []
after(:build) do |entity|
entity.names << build(:name)
entity.addresses << build(:address)
end
trait :incomplete do
incomplete true
end
end
我的 Gemfile 看起来像这样:https://jpst.it/Lb6N
编辑
我发现问题不在于 FactoryGirl,而在于 Mongoid gem。我在 JIRA 上为该项目开了一张票。这是 link,但您需要拥有一个可以访问 JIRA 上的 Mongoid 项目的帐户:https://jira.mongodb.org/browse/MONGOID-4302
这个ticket的详细信息是通过运行 rspec -b 看到的痕迹,我在mongoid gem:[=15=这一行确定了问题]
https://github.com/mongodb/mongoid/blob/master/lib/mongoid/clients/options.rb#L25
如果我将该行 (yield self) 替换为以下内容,问题就会消失:
自己
不过我不确定这是否是一个可行的解决方案,所以我打开了之前提到的票证以获取 mongoid 的反馈并看看可以做什么。
收到任何反馈后我会再次更新。
经过大量调试后,我在 mongoid_token gem 的本地分支上找到了问题的根源,这导致了这个奇怪的问题。 Mongoid 和 FactoryGirl gems 与此问题无关,原始的 mongoid-token gem.
我正在将我的应用程序升级到 Rails 5 当 运行 启用 rails 5 的测试时,我开始在几个对象创建语句上得到 "LocalJumpError: no block given (yield)",例如:
let!(:entity) { create(:entity) }
我升级到 Rails 5.0.0 后开始出现这种情况 我尝试在该行上使用构建而不是创建,但在这种情况下不会出现错误。
有没有人遇到过类似的问题?
我的实体工厂是这个:
FactoryGirl.define do
factory :entity do
entity_type 'A'
account { create(:account) }
ilk []
after(:build) do |entity|
entity.names << build(:name)
entity.addresses << build(:address)
end
trait :incomplete do
incomplete true
end
end
我的 Gemfile 看起来像这样:https://jpst.it/Lb6N
编辑
我发现问题不在于 FactoryGirl,而在于 Mongoid gem。我在 JIRA 上为该项目开了一张票。这是 link,但您需要拥有一个可以访问 JIRA 上的 Mongoid 项目的帐户:https://jira.mongodb.org/browse/MONGOID-4302
这个ticket的详细信息是通过运行 rspec -b 看到的痕迹,我在mongoid gem:[=15=这一行确定了问题]
https://github.com/mongodb/mongoid/blob/master/lib/mongoid/clients/options.rb#L25
如果我将该行 (yield self) 替换为以下内容,问题就会消失:
自己
不过我不确定这是否是一个可行的解决方案,所以我打开了之前提到的票证以获取 mongoid 的反馈并看看可以做什么。
收到任何反馈后我会再次更新。
经过大量调试后,我在 mongoid_token gem 的本地分支上找到了问题的根源,这导致了这个奇怪的问题。 Mongoid 和 FactoryGirl gems 与此问题无关,原始的 mongoid-token gem.