2017-11-08 3 views
0

In Rails-Konsole verwenden app alsRails - wie ActionDispatch :: Integration :: Session in ActiveJob

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

nun definiert ist, habe ich einen einfachen Job wie:

class MyJob < ActiveJob::Base 
    queue_as :low 

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

Wenn ich rufen MyJob.perform_now ich

NameError: undefined local variable or method `app' for

Wie kann ich app in einer Rails' ActiveJob verwenden?

+0

Was wird ein Ziel eines solchen Jobs sein? Es sieht sehr komisch aus ... Ich nehme eine Möglichkeit in Betracht, dass du dich in die falsche Richtung bewegst – AntonTkachov

+0

willst du nur eine gerenderte Antwort der Seite bekommen? um es in eine statische Datei oder etwas zu speichern? Wenn Sie auf Rails 5 sind, gibt es einen einfacheren Weg als mit einer App.get – Shaunak

+0

Ich muss eine Controller-Methode aufrufen, im Grunde um einige cache-related-stuffs auszulösen – davideghz

Antwort

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 
Verwandte Themen