Ruby on rails 3 ActiveRecord::AssociationType1.8不使用spork

Ruby on rails 3 ActiveRecord::AssociationType1.8不使用spork,ruby-on-rails-3,factory-bot,rails-activerecord,ruby-1.8,Ruby On Rails 3,Factory Bot,Rails Activerecord,Ruby 1.8,我有型号规格、控制器规格和请求规格。运行时: rspec spec 模型规格首先运行,然后请求,然后当控制器规格运行时,第一个控制器的规格正常,但下一个失败。但当我只运行控制器规格时,它们都通过了。我使用的是rails 3.0.9、ruby 1.8、factory_girl 2.2.0。我有 config.cache_classes = true 在test.rb中,我无法更改ruby或factory_girl的版本。有人能帮我吗 更新: 这就是错误: 9

我有型号规格、控制器规格和请求规格。运行时:

         rspec spec
模型规格首先运行,然后请求,然后当控制器规格运行时,第一个控制器的规格正常,但下一个失败。但当我只运行控制器规格时,它们都通过了。我使用的是rails 3.0.9、ruby 1.8、factory_girl 2.2.0。我有

        config.cache_classes = true
在test.rb中,我无法更改ruby或factory_girl的版本。有人能帮我吗

更新

这就是错误:

 96) UsersController reset_password: as non-master_admin: does not reset a user's password
 Failure/Error: let!(:user) { Factory(:admin_user) }
 ActiveRecord::AssociationTypeMismatch:
   AdminUser(#-630697398) expected, got MerchantUser(#-629918188)
 # ./app/models/activity.rb:33:in `log'
 # ./config/initializers/add_activity_logging.rb:8:in `_callback_after_759'
 # ./spec/controllers/users_controller_spec.rb:8
在规范/控制器/用户\u控制器\u规范rb:8中:

let!(:user) { Factory(:admin_user) }
在活动中。rb:33:

  create(:user => user, :title => title, :changeable_id => changeable.id,
      :changeable_type => changeable.class.to_s, :data => attributes)
还有:

  belongs_to :user, :class_name => 'AdminUser'
在AdminUser类中没有太多的活动,但是当我尝试添加它时,我想我无法正确添加它。 谢谢你的帮助

更新: AdminUser和MerchantUser是用户的后代

可能的修复 给出错误的行实际上是:

   admin_user = Factory(:tech_admin)
我将其替换为:

  admin_user = FactoryGirl.build_stubbed(:tech_admin)
这样就无法访问文件activity.rb

最终修复
显然,问题出在工厂(:经销商)。我用FactoryGirl.create(:转销商)替换了它,它一切都正常。虽然现在我想知道并搜索这两种用法之间的区别是什么

如果没有您正在使用的确切命令行调用和显示的错误消息,我们真的说不出多少。也可能是控制器规范的代码失败了。当规范运行时,看起来用户实际上是一个MerchantUser对象,而不是AdminUser。你能检查一下吗?是的。我确信我正在使用工厂来管理用户,但它似乎正在创建一个销售员。你能检查一下规范中的用户等级吗?在测试用例中添加“puts user.class”,或者类似的东西。我添加了它,现在我正在等待所有测试的执行。有趣的是,当他单独运行时,测试从未失败,但当他与所有其他人一起运行时,测试失败。