2011-10-13 58 views
1

後,我有一個數組:的Ruby/Rails:解碼HTML #inspect

​​

在某些JavaScript中使用這些數據,我需要使用inspect像這樣:

series: [ 
    { 
    data: <%= arr.inspect %> 
    } 
] 

不幸的是,這產生:

[&quot;foo&quot;, &quot;bar&quot;] 

它不能被Javascript讀取。我試過使用HTMLEntities.new.decodeCGI.unescapeHTML解碼,但仍然得到編碼的雙引號。

任何想法?

編輯:這是使用ERB的Rails應用程序內。

+0

您是使用ERB來處理此模板還是使用框架? – Candide

+0

這是一個使用ERB的Rails應用程序。 – imderek

+0

您是否嘗試使用escape_javascript幫助器? – Candide

回答

6

您不想使用inspectinspect用於生成用於調試,記錄等的人類可讀輸出。如果你想你的數據轉儲到JavaScript,使用JSON:

data: <%=r arr.as_json %> 

這將會給你的東西,如:

data: ["foo","bar"] 

,一切都將被正確地轉義並在JavaScript編碼的使用(因此r在ERB中爲raw)。

+0

工程很棒。多謝! – imderek

+0

謝謝,幫了很多! – hade