2012-04-03 7 views
5

Estoy tratando de hacer una vista rabl para encadenar en una tarea de raíles 3.2. Lo renderizo en cadena para enviar JSON a través de Pusher desde una tarea en segundo plano. He visto varias render_to_string de respuestas de tareas de rake, pero ninguna de ellas parece funcionar. Aquí es lo que tengo hasta ahora:cómo hacer una vista rabl en una tarea de 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 este intento me sale un ActionView :: :: Plantilla excepción de error y el error "método no definido parámetros` para nada: NilClass".

Respuesta

6

Hay una forma más fácil de hacerlo llamando al Rabl::Renderer methods. Sin embargo, su contexto importará cuando intente renderizar algo. Por lo tanto, tenga cuidado si hay algún controlador/método de ayuda dentro de sus archivos rabl porque no estarán disponibles cuando lo llamen afuera. Aquí hay un código de muestra que puede usar, probado con Rabl 0.6.13.

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