2013-04-11 2 views
2

Я использую визуализацию Google JavaScript API в моих рельсах приложении и включил его, как это в application.html.erb файл:Как импортировать javascript в приложение rails?

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 

Для сценария и следующий код, чтобы работать, я должен быть подключен в Интернет. Вместо этого я взял содержимое вышеуказанного URL-адреса и поместил его в папку assets> javascripts в моем приложении rails и назвал его jsapi.js. Затем я включил ниже в application.html.erb файл:

<%= javascript_include_tag "jsapi" %> 

Когда я запускаю мое приложение, когда отсоединен к Интернету, я могу увидеть содержимое файла выше, потому что это получает генерируется:

<script src="/assets/jsapi.js?body=1" type="text/javascript"></script> 

Однако фактический график, который я пытаюсь сделать, не работает. Какие-нибудь советы о том, почему это так? Мой полный код JavaScript в моем index.html.erb (на самом деле, используя библиотеку) ниже:

<script type="text/javascript"> 
     google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 
     function drawChart() { 
     var options = { 
      title: 'Most common phrases in pro-Microsoft Reviews (<%= @reviews.count %> reviews analyzed)', 
      vAxis: {title: 'Phrases', titleTextStyle: {color: 'red'}}, 
      animation:{ 
      duration: 2000, 
      easing: 'out',} 
     }; 

     var data = google.visualization.arrayToDataTable([ 
      ['Phrase', 'Frequency'], 
      <% @frequency.each do |key,value| %> 
       ['<%= key %>', <%= value %>], 
      <% end %> 
     ]); 

     var chart = new google.visualization.BarChart(document.getElementById('chart_div')); 
     chart.draw(data, options); 

     google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 
     } 
    </script> 

У меня есть ощущение, что это что-то делать с кодом непосредственно выше. Когда я удаляю первый фрагмент javascript, который я включил и подключен к сети, он работает.

+0

любые исключения, когда материал не работает? – ted

+0

@ted no, не получая никаких исключений, о которых я знаю. это не та область, где отображается диаграмма. – sharataka

ответ

0

Если вы посмотрите на верхнюю часть jsapi.js из Google, это будет ссылка на другие внешние JS-файлы. Эти переменные используются во всем JS-файле.

google.loader.ServiceBase = 'https://www.google.com/uds'; 
google.loader.GoogleApisBase = 'https://ajax.googleapis.com/ajax'; 
Смежные вопросы