【问题标题】:Rendering multiple partials in a controller在控制器中渲染多个部分
【发布时间】:2010-03-04 00:46:53
【问题描述】:

我想在一个控制器中渲染多个部分,这些不会成为响应的一部分,而是通过Juggernaut 推送给客户端。

我正在使用render_to_string

当第二个被调用时,我得到一个DoubleRenderError

我如何渲染部分而不影响performed?

【问题讨论】:

  • 原来render_to_string 清除了“渲染结果”,所以你可以多次调用它。问题是我在 after_filter 钩子中调用了 render_to_string,在渲染被调用之后。

标签: ruby-on-rails


【解决方案1】:

原来 render_to_string 清除了“渲染结果”,所以你可以多次调用它。问题是我在 after_filter 钩子中调用了 render_to_string,在已经调用了渲染之后。

【讨论】:

    【解决方案2】:

    等等,你怎么能在 after_filter 钩子中做到这一点?导致我遇到同样的问题,并且必须做一个 after_filter 钩子。

    顺便说一句,我在类似的情况下使用推送技术,但使用 HTML 5 websockets 和 eventmachine

    【讨论】:

    • 尝试将它放在控制器操作中的主渲染调用之前,而不是放在 after_filter 中。我查看了源代码并且 render_to_string 调用操纵了响应,所以即使你操纵了 @performed_render 变量,你也不应该在渲染后调用它。
    • 是的,真的不能那样做。我正在使用 InheritedResources,所以 after_filters 有点像我想要的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 2014-11-02
    • 2014-09-20
    相关资源
    最近更新 更多