如何在rake任务中渲染一个rabl视图?

我正试图在一个轨道3.2 rake任务中渲染一个rabl视图。 我将它渲染为字符串,以便通过Pusher从后台任务发送一些JSON。 我从rake任务答案中查看了各种render_to_string,但它们似乎都没有工作。 这是我到目前为止:

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')) 

通过这次尝试,我获得了一个ActionView :: Template :: Errorexception和错误“未定义的方法`参数’为nil:NilClass”。

有一种更简单的方法可以通过调用Rabl :: Renderer方法来实现 。 但是,当您尝试渲染某些内容时,上下文将很重要。 因此,如果rabl文件中有任何控制器/帮助器方法,请小心,因为它们在外面调用时将无法使用。 以下是您可以使用的示例代码,使用Rabl 0.6.13进行测试。

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