2012-04-03 11 views
5

Sto provando a renderizzare una vista rabl per stringere un rastrello di rails 3.2. Lo sto trasformando in stringa per inviare alcuni JSON tramite Pusher da un'attività in background. Ho dato un'occhiata a vari render_to_string dalle risposte del rake task ma nessuno di loro sembra funzionare. Ecco quello che ho finora:come eseguire il rendering di una vista rabl in un'attività rake?

controller = PostsController.new 
av = ActionView::Base.new(MyApp::Application.config.paths['app/views'].first,{},controller) 
@post = post 
Pusher["some channel"].trigger('new_post', av.render(:template => 'posts/show.json.rabl')) 

Con questo tentativo ho un'ActionView :: un'eccezione Template :: errore e l'errore di "metodo non definito` parametri per nil: NilClass".

risposta

6

C'è un modo più semplice per farlo chiamando Rabl::Renderer methods. Tuttavia, il tuo contesto sarà importante quando proverai a rendere qualcosa. Pertanto, fai attenzione se esistono dei metodi controller/helper all'interno dei tuoi file rabl perché non saranno disponibili quando li chiamerai all'esterno. Ecco un codice di esempio che è possibile utilizzare, testato con Rabl 0.6.13.

Rabl::Renderer.json(@post, 'posts/show', :view_path => 'app/views') 
Problemi correlati