我正在尝试渲染rabl View 以在rails 3.2 rake任务中进行字符串化。我将其呈现为字符串,以便从后台任务通过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异常和错误“nil:NilClass的未定义方法'parameters'”。

最佳答案

有一种更简单的方法可以调用Rabl::Renderer methods。但是,当您尝试渲染某些内容时,上下文会很重要。因此,请注意,您的rabl文件中是否包含任何 Controller /帮助程序方法,因为在外部调用它们时将不可用。这是您可以使用的示例代码,并经过Rabl 0.6.13的测试。

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

关于ruby-on-rails - 如何在rake任务中渲染rabl View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9999789/

10-11 18:39