J'essaie de résumer la logique pour générer mon plan du site dans une catégorie distincte pour que je puisse utiliser retardé :: Job pour générer hors bande:Problème rendu d'une vue à l'intérieur d'une classe générique
class ViewCacher
include ActionController::UrlWriter
def initialize
@av = ActionView::Base.new(Rails::Configuration.new.view_path)
@av.class_eval do
include ApplicationHelper
end
end
def cache_sitemap
songs = Song.all
sitemap = @av.render 'sitemap/sitemap', :songs => songs
Rails.cache.write('sitemap', sitemap)
end
end
Mais chaque fois que j'essaie ViewCacher.new.cache_sitemap
je reçois cette erreur:
ActionView::TemplateError:
ActionView::TemplateError (You have a nil object when you didn't expect it!
The error occurred while evaluating nil.url_for) on line #5 of app/views/sitemap/_sitemap.builder:
Je suppose que cela signifie que ActionController::UrlWriter
ne sont pas inclus dans le bon endroit, mais je ne sais vraiment pas