2011-08-31 47 views
0

我的設置:Rails的3.0.9,1.9.2紅寶石和jQuery 1.6.2jQuery的顯示所逃脫輸出的Rails

HTML

<textarea id="photo-42-9" class="comment_box">Write a comment...</textarea> 

jQuery的

$('#newsfeed').delegate('.comment_box', 'keydown', function (event){ 
    if(event.keyCode == 13) { 
    var $this = $(event.target); 
    $.post('/comments', { title: ..., description: ... }, function(response) { $(response).insertBefore($this); }, "script"); 
    } 
}); 

Rails的

comments_controller.rb  
    def create 
    @comment = Comment.new 

    respond_to do |format| 
     format.html # new.html.erb 
     format.js 
    end 
    end 

create.js.erb 
"<%= escape_javascript(render 'show_comments') %>" 

render 'show_comments' ret請在textarea之前輸入我想插入的<div>...</div>。我發現,輸出中轉義的特殊字符不能被JS正確渲染,想法如何?這就是它看起來像目前在HTML後insertBefore

<div class="\&quot;comment\&quot;">(Bob less than a minute ago) beautiful day<\/div></div> 

我只注意到一個額外的</div>被添加到輸出端,看似jQuery的,因爲這是create.js.erb吐出如圖Firebug的控制檯響應

'<div class=\"comment\">(Bob less than a minute ago) beautiful day<\/div>' 

回答

1

嘗試以下操作:

<%= raw escape_javascript(render 'show_comments') %> 
+0

很好的建議,但沒有奏效,它有同樣的結果,我已經更新我的曲與輸出一起使用。 – Bob