Spork正在预加载我的User
模型,但不是我的其他模型。 (即,每次我对app/models/user.rb
进行更改时,我都必须重新启动Spork服务器。)
正在运行spork --diagnose
告诉我问题是由Devise引起的。当spork预加载config/routes.rb
时,它会运行预加载用户模型的行devise_for :users
。
那我怎么能防止这种情况发生呢? Spork文档中的This page说我应该使用::trap_method
,将spec_helper
文件放入我的行
Spork.trap_method(Rails::Application, :reload_routes!)
for Rails< 3.1,或
Spork.trap_method(Rails::Application::RoutesReloader, :reload!)
for Rails 3.1。但我已经尝试了这两种方法,但两种方法都没有效果。我正在运行Rails 4.0.0和Spork 1.0.0rc4。
如何在每次运行时重新加载User类?
答案 0 :(得分:1)
在spec / spec_helper.rb中明确重新加载模型:
Spork.each_run do
# reload all the models
Dir["#{Rails.root}/app/models/**/*.rb"].each do |model|
load model
end
end