【问题标题】:Special Character & is getting printed as &特殊字符 & 被打印为 &
【发布时间】:2012-05-14 10:22:13
【问题描述】:

在我的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&amp;amp;Mine 而不是Me&amp;amp;Mine

【问题讨论】:

  • 您确定要 & 而不是 & 吗? Javascript 能用吗?另外,查看您的问题,您可能需要将问题中的 & 符号转义为 &而不是 &amp&semi;.

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


【解决方案1】:

你试过在上面使用html_safe吗?

【讨论】:

  • 这确实是一个助手,可以在 application_helper.rb 文件中找到,它将“特殊字符”呈现为 html 输出我发现这比“原始”方法干净得多
  • @Michael Kohl 正是你想让我放置 html_safe 命令的位置,我试过 $("#3").text(" "var") % >").html_safe 但它没有用
  • @AmitVashistha 您必须在包含特殊字符的 Ruby 字符串上调用它。
【解决方案2】:

转换这个:

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

到:

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

它会正常工作的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-27
    • 2014-08-13
    • 1970-01-01
    • 2020-07-21
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多