2015-06-17 58 views
1

在我的控制器中,我想將HTML部分中的一個呈現爲字符串變量,然後使用Pusher發送它,並使用JS文件的常規呈現(這是AJAX請求)完成動作。render_to_string中斷動作呈現

我在做一個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」中輸入: alert(「test」);

即使在rails日誌中,我也看不到對話框,但我確實看到「create.js」部分已呈現。

當我刪除render_to_string部分時,所有工作正常,「create.js」被正確呈現。

你能幫忙嗎?我錯過了什麼?

回答

0

看來,修復是明確呼籲 respond_to do | format | format.js end

render_to_string後面。

這很奇怪,因爲沒有render_to_string調用你不會那麼做...