2012-05-14 117 views
2

在我的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

+0

您確定要和&而不是&? Javascript是否工作?另外,看看你的問題,你可能需要跳過你的問題中的&符號&而不是& amp ;。 –

回答

2

你試過用html_safe嗎?

+0

這確實是一個可以在application_helper.rb文件中找到的幫手,它將呈現「特殊字符」作爲html輸出我發現這比「原始」方法更清潔 – dennis

+0

@Marlin Pierce代碼工作正常,而不是& –

+0

@Michael Kohl確切地,你要我放置html_safe命令,我試過$(「#3」)。text(「<%= escape_javascript(render(:partial =>」var「)%>」)。html_safe但它沒有奏效 –

0

轉換這樣的:

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

到:

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

,它會正常工作。

這是因爲當您使用純文本而沒有任何格式的「文本」時,所以無法呈現「&」並打印其原始格式。但使用HTML將使用標記/格式來呈現它。