特殊字符&正在打印出来&

时间:2012-05-14 10:22:13

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

在我的index.html.erb页面中,当从MSSQL查询数据时,它显示为 Me&Mine。我试过这个:

$("#3").text("<%= escape_javascript(raw render(:partial => "var") %>");

但它不起作用。

index.html.erb:

<%= link_to "Link", {:action => "AjaxView",:col => "colname"}, 
        :update => "Ajaxcall", :remote => true %>
<tr>
<td id="#3" style="height:25px">data displayed here</td>

控制器:

def AjaxView
  @vars= Var.find(:all,:conditions => { :varName=> "one" },:select=>(params[:col]))
  respond_to do |format|
    format.js { render :layout=>false }
  end
end

AjaxView.js.erb:

 if ( @col.to_s == "colName") {
   $("#3").text("<%= escape_javascript(render(:partial => "var") %>");
 }
 elsif ( @col.to_s == "colName1")
 {
   $("#2").text("<%= escape_javascript(render(:partial => "var") %>");
 }

_var.html.erb:

<%= var.col1 %>

如何显示Me&Mine而不是Me&amp;Mine

2 个答案:

答案 0 :(得分:2)

您是否尝试过使用html_safe

答案 1 :(得分:0)

转换它:

$("#3").text("<%= escape_javascript(raw render(:partial => "var") %>");

为:

$("#3").html("<%= escape_javascript(raw render(:partial => "var") %>");

它会正常工作。

这是因为当您使用纯文本的“text”而没有任何格式时,因此无法呈现“&amp;”并打印其原始形式。但是使用HTML会使用标记/格式化来呈现它。