Ruby on Rails:字符串未转换为html标记

时间:2014-07-23 06:20:39

标签: jquery ruby-on-rails ruby ajax

我使用以下代码作为对ajax调用的响应,但是为了形成链接,屏幕上会出现简单的文本。

$('div.showcomment').text('<% @comments.each do |comment| %><%= comment.body %><%= link_to 'Delete Comment', articles_deletecomment_path(:id =>comment.id), method: :delete, data: { confirm: 'Are you sure?' } %><% end %>');

一个示例文本如下: 删除评论

2 个答案:

答案 0 :(得分:1)

尝试使用.html()代替.text()

答案 1 :(得分:0)

最好将所有ERB代码放在一个部分中,以便您可以很好地编写ERB代码(更少混淆,更易读)并将您的部分包含在js文件中:

部分:

<% @comments.each do |comment| %>
  <%= comment.body %>
  <%= link_to 'Delete Comment', articles_deletecomment_path(:id =>comment.id), method: :delete, data: { confirm: 'Are you sure?' } %>
<% end %>

js.erb文件(请注意j之前render正确转义javascript内容):

$("div.showcomment").html("<%= j render partial: 'path/to/file' %>");