2017-11-08 9 views
0

에 ActionDispatch :: 통합 :: 세션을 사용하는 방법을 app 지금레일 레일 '콘솔에서 ActiveJob

[1] pry(main)> app 
=> #<ActionDispatch::Integration::Session:0x000000189028e8 

으로 정의된다, 나는 같은 간단한 작업이 있습니다

class MyJob < ActiveJob::Base 
    queue_as :low 

    def perform 
    app.get('/my/path', nil, {'Accept-Language' => "it"}) 
    end 
end 

을하면 I 나는 어떻게 레일 'ActiveJob에 app을 사용할 수 있습니다

NameError: undefined local variable or method `app' for

을 얻을 MyJob.perform_now 전화?

+0

이러한 직업의 목표는 무엇입니까? 그것은 매우 이상하게 보입니다. 나는 가능성을 고려하여 잘못된 방향으로 이동합니다. – AntonTkachov

+0

페이지의 렌더링 된 응답을 얻으려고하십니까? 그것을 정적 파일이나 다른 것에 저장 하시겠습니까? 레일 5에 있다면 app.get을 사용하는 것보다 쉬운 방법이 있습니다. – Shaunak

+0

컨트롤러의 메소드를 호출해야합니다. 기본적으로 캐시 관련 항목을 트리거합니다. – davideghz

답변

0
class MyJob < ActiveJob::Base 
    queue_as :low 

    def perform 
    app = ActionDispatch::Integration::Session.new(Rails.application) 
    app.get('/my/path', nil, {'Accept-Language' => "it"}) 
    end 
end