如何在Rake任务中呈现Rabl视图?

6

我正在尝试在Rails 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::Error例外,错误信息为“未定义的方法`parameters' for nil:NilClass”。

1个回答

6

有一种更简单的方法是通过调用Rabl::Renderer方法来完成。然而,当您尝试渲染某些内容时,上下文将非常重要。因此,请注意,如果在您的rabl文件中存在任何控制器/助手方法,则在外部调用时它们将不可用。下面是一个样例代码,已经使用了Rabl 0.6.13版本进行测试。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接