Rack :: Test导致ActiveRecord :: AssociationTypeMismatch

Sea*_*ary 10 rspec ruby-on-rails spork

我在运行所有规格时遇到问题.

    ActiveRecord::AssociationTypeMismatch:
       Affiliate(#2154746360) expected, got Affiliate(#2199508660)

我的模型似乎被加载了两次.

我已经将Rack :: Test要求定义"app"方法的问题隔离开了.

require 'rack/test'
include Rack::Test::Methods

# app method is needed for rack-test
def app
  Rails.application
end
Run Code Online (Sandbox Code Playgroud)

如果我注释掉Rails.application我的机架规格不起作用,但我的所有其他规格都可以正常工作.使用的Rails.application,在"应用程序"的方法引入了上述错误.

如果我单独运行我的规格,一切正常.我正在使用Spork预加载我的环境,我认为模型首先由Spork加载,然后Rails.application在我的"app"方法中调用它们时重新定义.

关于如何解决这个问题的任何想法?我不确定是否有另一种方法可以在"app"方法中设置我的Rails应用程序.

Sea*_*ary 0

我不再有这个问题了。我更新了我的宝石。Rails 从 3.0.5 更新到 3.0.7,我猜这可能是解决了我的问题的 gem 更新。无论哪种方式,使用新版本的 gems,我的问题都得到了解决。