有幾個選項:
escape_javascript
別名:j
。
僅適用於字符串。
將可以在Javascript字符串中具有特殊含義的字符( ,如反斜槓轉義字符)轉換爲適合放入JavaScript字符串引號內的格式。
維護輸入html_safe
狀態, 所以需要html_safe
另有特殊的HTML字符像<
會得到逃到<
。
<% a = "\\n<" %>
<%= javascript_tag do %>
'<%= j(a) %>' === '\\n<'
'<%= j(a).html_safe %>' === '\\n<'
<% end %>
to_json + html_safe
正如維亞切斯拉夫提到,去給予好評他。
因爲JSON是almost a subset of Javascript object literal notation。
不僅適用於散列對象,還適用於將 轉換爲相應數據類型的JSON片段的字符串,數組和整數。
<% data = { key1: 'val1', key2: 'val2' } %>
<%= javascript_tag do %>
var data = <%= data.to_json.html_safe %>
data.key1 === 'val1'
data.key2 === 'val2'
<% end %>
數據 - 屬性
添加值的屬性,獲取它們的JavaScript DOM操作。
更好地與content_tag
幫手:
<%= content_tag 'div', '', id: 'data', data: {key1: 'val1', key2: 'val2'} %>
<%= javascript_tag do %>
$('#data').data('key1') === 'val1'
$('#data').data('key2') === 'val2'
<% end %>
有時被稱爲 「非侵入式JavaScript」。
坤
庫專門用於這項工作:https://github.com/gazay/gon
可能是最強大的解決方案。
的Gemfile:
gem 'gon'
控制器:
gon.key1 = 'val1'
gon.key2 = 'val2'
佈局app/views/layouts/application.html.erb
:
<html>
<head>
<meta charset="utf-8"/>
<%= include_gon %>
查看:
<%= javascript_tag do %>
gon.key1 === 'val1'
gon.key2 === 'val2'
<% end %>
又見
請嘗試讀取這個http://stackoverflow.com/help/deleted -answers,以獲得更多的理解如何**不**回答。即:「不能從根本上回答問題的答案」:**僅僅是一個鏈接到外部網站** – 2013-09-16 07:31:17
謝謝,我會在我的答案中提供更多詳細信息 – MQuy 2013-09-16 13:15:18