【问题标题】:Issues with escaped html in .js.erb file.js.erb 文件中的转义 html 问题
【发布时间】:2011-09-14 07:46:27
【问题描述】:
我有一个包含以下行的 .js.erb 文件
$("#").html("")
显示
<a href=/users/1/tags>1 taga>
代替
1 个标签
这在我运行 rails 3.0.4 时可以正常工作,但现在我运行 rails 3.0.8 时就不行了。我发现我需要在我一直使用auto_link 的其他地方添加.html_safe,否则我会遇到同样的问题。
我怎样才能让它不会逃脱这个html?
【问题讨论】:
标签:
jquery
html
ruby-on-rails-3
【解决方案1】:
我从不喜欢像这样用 ruby 插入你的 JS。毛茸茸总是让人难以理解。
相反,将您的数据作为 JSON 转储到它自己的 JS 中,然后简单地将数据用作本机 javascript。
var user = <%= {
:id => current_user.id,
:path => user_tags_path(current_user),
:link_text => pluralize(@count,'tag'),
}.to_json %>;
var link = $('<a>').attr('href', user.path).text(user.link_text);
$('#user' + user.id + '_following').html(link);
在我看来,这更容易理解,并且完全避免了任何 HTML 问题,因为 HTML 根本不在您的 ruby 表达式中。