Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何防止Spork在Rails 4中预加载路由文件?_Ruby On Rails_Ruby_Testing_Devise_Spork - Fatal编程技术网

Ruby on rails 如何防止Spork在Rails 4中预加载路由文件?

Ruby on rails 如何防止Spork在Rails 4中预加载路由文件?,ruby-on-rails,ruby,testing,devise,spork,Ruby On Rails,Ruby,Testing,Devise,Spork,Spork正在预加载我的用户模型,但没有加载我的任何其他模型。(也就是说,每次对app/models/user.rb进行更改时,我都必须重新启动Spork服务器) 运行spork--diagnose告诉我问题是由designe引起的。当spork预加载config/routes.rb时,它运行一行design\u for:users,该行预加载用户模型 那么我怎样才能防止这种情况发生呢?在Spork文档中,我说我应该使用::trap_方法,方法是将 Spork.trap_method(Rails

Spork正在预加载我的
用户
模型,但没有加载我的任何其他模型。(也就是说,每次对app/models/user.rb进行更改时,我都必须重新启动Spork服务器)

运行
spork--diagnose
告诉我问题是由designe引起的。当spork预加载
config/routes.rb
时,它运行一行
design\u for:users
,该行预加载用户模型

那么我怎样才能防止这种情况发生呢?在Spork文档中,我说我应该使用
::trap_方法
,方法是将

Spork.trap_method(Rails::Application, :reload_routes!)
对于小于3.1的轨道,或

Spork.trap_method(Rails::Application::RoutesReloader, :reload!)
对于Rails 3.1。但这两种我都试过了,都不管用。我正在运行Rails 4.0.0和Spork 1.0.0rc4


如何让用户类在每次运行时重新加载?

在spec/spec\u helper.rb中明确地重新加载模型:

Spork.each_run do
  # reload all the models
  Dir["#{Rails.root}/app/models/**/*.rb"].each do |model|
    load model
  end
end

你能包括运行spork-diagnose的堆栈跟踪吗?啊,太简单了!谢谢(我刚刚添加了“load Rails.root.join”行“app”、“models”、“user.rb”,因为不需要重新加载每个模型,只是用户工作不正常。)