我有一个.js.erb文件,其中包含以下行
$(“#<%= “用户#{current_user.id} _following” %> “中。)HTML(” <%= escape_javascript(的link_to(复数化(@数, '标签'), user_tags_path(current_user)))%>“)
显示
<a href=/users/1/tags>1 taga>
而不是
1个标签
这在我运行rails 3.0.4时曾经工作过,但是现在它现在还没有运行rails 3.0.8。我发现我需要在我使用.html_safe
的其他地方添加auto_link
,否则我会遇到同样的问题。
如何获取它以便它不会逃脱此HTML?
答案 0 :(得分: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表达式中。