0
私はエルブテンプレートindex.html.erb
を持っています。これはhtmlページをレンダリングします。有効なjsonをHTML erbテンプレートのjavascriptに送信
index.html.erb
内のjavascriptにデータを渡すために
data: [
{x: 'Resolved', y: 0 },
{x: 'Unresolved', y: 0 }
]
、私はこのようになりますスクリプトタグを持っています。ただし、このページには、リテラルJavaScriptのオブジェクトは、チャートをロードする予定で、その上のグラフは、があります。 chart_managerの
<script>
$(document).ready(function(){
var data = "<%= @chart_manager.bar %>"
console.log(data);
})
</script>
bar
方法は、単にJSONを返す:
def bar
data = []
data << { x: 'Open', y: tasks.open}
data << { x: 'Closed', y: tasks.closed }
data.to_json.html_safe
end
私はページをロードするときしかし、私はCHROにエラーが発生します私:
Uncaught SyntaxError: Unexpected identifier
そして、ブラウザはデータがこのように見て示しています
var data = "[{"x":"Unresolved","y":0},{"x":"Resolved","y":0}]"
私はHTMLのERBテンプレート内のJavaScriptに適切なJSONを送信することができますどのように?
var data = JSON.parse('<%= @chart_manager.bar %>');
注二重引用符の代わりに単一引用符の使用:
余分な引用符を削除します。 '" <%= @ chart_manager.bar%> "'は '<%= @ chart_manager.bar%>'になります。そうすれば、即座にデータを入手することができます。配列ではなく文字列として本当に必要な場合は、 ''<%= @ chart_manager.bar%>''で囲むか、JSON.stringify(data)を文字列にすることができます。 –