render_to_string打破动作渲染

时间:2015-06-17 21:55:18

标签: ruby-on-rails ajax ruby-on-rails-4

在我的控制器中,我希望将其中一个HTML部分渲染为字符串变量,然后使用Pusher发送它,并使用JS文件的常规渲染完成操作(这是AJAX请求)。

我正在进行AJAX调用,我的操作如下:

def create
    @my_Object = ...
    @html_content = escape_javascript(render_to_string :partial => 'my_partial', :object => @my_object )
    Pusher.trigger(
        'my-channel',
        'my-event',
        { message: @html_content }
    )
end

根据我的理解,我希望看到" create.js"文件在此操作结束时呈现,但情况并非如此。

如果在" create.js"我放:     警报("测试&#34);

我没有看到对话框,即使在rails日志中我确实看到" create.js"部分呈现。

当我删除render_to_string部分时,一切正常," create.js"得到适当的渲染。

你能帮忙吗?我错过了什么?

1 个答案:

答案 0 :(得分:0)

似乎修复是显式调用     respond_to do | format |         format.js     端

在render_to_string之后。

这很奇怪,因为如果没有render_to_string调用,你就无法做到这一点......