2012-12-16 49 views
0

位新的Ajax和rails。Rails遠程調用不工作/ JavaScript格式

我有一個圖像上的鏈接,點擊時應該替換圖像。

這裏是我中的查看鏈接:

<div id="flag_<%= message.id %>"> 
    <%= link_to image_tag("white_star.png"), flag_message_path(message), remote: true %> 
</div> 

此呼籲消息控制器標誌方法。對於format.js我有flag.js:

{$('#flag_<%[email protected]%>').html('<% if @message.flag == false %><a href="/messages/96/flag" data-remote="true"><img alt="White_star" src="/assets/white_star.png" title="flag"></a> 
    <% else %> 
    <a href="/messages/96/flag" data-remote="true"><img alt="Red_star" src="/assets/red_star.png" title="flag"></a> 
    <% end %>'); 
} 

這將返回到瀏覽器:

{ 
$('#flag_94').html('<a href="/messages/96/flag" data-remote="true"><img alt="White_star" src="/assets/white_star.png" title="flag"></a> 
'); 
} 

這似乎確定我的,但沒有任何反應....有什麼想法? 謝謝

+0

想知道是否與引號有關,但無法正確對待 – bobomoreno

回答

1

一切似乎沒問題,但我會放棄在您的format.js.erb周圍的榮譽。那些不是必需的。

如果您的JavaScript中有錯誤,您應該在javascript控制檯中看到它。

通常很好的做法是將這樣的代碼抽取到部分中。

所以,你將有一個replace_image.html.erb

<% if @message.flag == false %> 
    <a href="/messages/96/flag" data-remote="true"><img alt="White_star" src="/assets/white_star.png" title="flag"></a> 
<% else %> 
    <a href="/messages/96/flag" data-remote="true"><img alt="Red_star" src="/assets/red_star.png" title="flag"></a> 
<% end %> 

,並在您format.js.erb你只是做

$('#flag_<%[email protected]%>').html("<%= escape_javascript(render :partial => 'replace_image') %>"); 

希望這有助於。

+0

謝謝!逃避似乎已經做了伎倆,也有一些\ n漂浮在那裏。 – bobomoreno