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

Mar*_*arc 6 ruby-on-rails ruby-on-rails-3 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'))
Run Code Online (Sandbox Code Playgroud)

通过这次尝试,我获得了一个ActionView :: Template :: Error异常和错误"未定义的方法`参数'为nil:NilClass".

mat*_*aso 6

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

Rabl::Renderer.json(@post, 'posts/show', :view_path => 'app/views')
Run Code Online (Sandbox Code Playgroud)