2014-01-24 10 views
0

Spork이 내 User 모델을 사전로드하지만 다른 모델은 사전로드되지 않습니다. (즉, app/models/user.rb을 변경할 때마다 Spork 서버를 다시 시작해야합니다.)Spork에서 Rails 4에 경로 파일을 미리로드하지 못하게하려면 어떻게해야합니까?

spork --diagnose을 실행하면 문제가 Devise로 인해 발생한다고 알립니다. spork preloads가 config/routes.rb 일 때 사용자 모델을 미리로드하는 라인 devise_for :users을 실행합니다.

어떻게 이런 일이 발생하지 않도록 할 수 있습니까? Spork의 documentatation에 This page 내가 레일 < 3.1, 또는 레일 3.1

Spork.trap_method(Rails::Application::RoutesReloader, :reload!) 

spec_helper 파일에 라인

Spork.trap_method(Rails::Application, :reload_routes!) 

하나를 넣어, ::trap_method를 사용해야했다. 그러나 나는이 두 가지를 모두 시도해 보았고 어느 것도 작동하지 않았습니다. 나는 Rails 4.0.0과 Spork 1.0.0rc4를 돌리고있다.

각 실행마다 User 클래스를 다시로드하려면 어떻게해야합니까?

+0

당신이 spork의 --diagnose을 실행하기위한 스택 추적을 포함 할 수 있습니다? – eabraham

답변

1

사양에서/명시 적 모델을 다시로드 spec_helper.rb :

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

아, 너무 간단! 감사. (모든 모델을 다시로드 할 필요가 없으므로'load Rails.root.join "app", "models", "user.rb"행을 추가했습니다. 제대로 작동하지 않는 사용자 일뿐입니다.) – GMA