我正在尝试在 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 异常和错误“nil:NilClass 的未定义方法‘参数’”。
有一种更简单的方法可以做到这一点,那就是调用Rabl::Renderer 方法 https://github.com/nesquena/rabl#rendering-templates-directly。然而,当您尝试渲染某些内容时,您的上下文将很重要。因此,如果 rabl 文件中有任何控制器/帮助器方法,请小心,因为在外部调用它们时它们将不可用。以下是您可以使用的示例代码,已使用 Rabl 0.6.13 进行测试。
Rabl::Renderer.json(@post, 'posts/show', :view_path => 'app/views')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)