Откройте флэш-диаграмма 2 - идентификаторы одинаковы так же, поэтому несколько не отображаются
-
29-09-2019 - |
Вопрос
Я могу получить одну успешную открытую флэш-диаграмму за вид. Сейчас я пытаюсь поддержать несколько открытых флэш-диаграмм для каждого представления, но исходный код показывает, что идентификаторы для обоих сгенерированных DIV являются одинаковыми:
# javascript at top of view
<%= javascript_include_tag "swfobject.js", :cache => true %>
# view itself
<%= @graph.html_safe %> # html_safe is necessary for Rails 3
<%= @graph2.html_safe %>
# view's source code
<div id='flashcontent_913000'></div>
<script type="text/javascript">
swfobject.embedSWF(
"/open-flash-chart.swf","flashcontent_913000",
"440", "310", "9.0.0", "expressInstall.swf",
{"data-file":"/analytics%2Fpie1"}, {}, {} );
</script>
</div>
<br />
<div id='flashcontent_913000'></div>
<script type="text/javascript">
swfobject.embedSWF(
"/open-flash-chart.swf","flashcontent_913000",
"440", "310", "9.0.0", "expressInstall.swf",
{"data-file":"/analytics%2Fpie2"}, {}, {} );
</script>
</div>
#controller
respond_to do |wants|
wants.html {
@graph = ofc2( 440, 310, 'analytics/pie1' )
@graph2 = ofc2( 440, 310, 'analytics/pie2' )
}
end
def pie1
... # functioning when put in the view alone
end
def pie2
... # functioning when put in the view alone
end
Потому что идентификаторы одинаковы, <%= @graph.html_safe %>
пытается рендер Graph2 и не удается, и Graph2 вообще не отображается. Мне нужно получить OFC2 для генерации разных идентификаторов. Как я могу сделать это?
Решение
Оказывается, вы можете указать идентификатор в вашем контроллере сразу после, например, «Analytics/Pie1». Определяя идентификатор, мы устраняем любую вероятность того, что алгоритм генерирует одинаковое число и, следовательно, не смог отображать изображения.
Пример: @graph = ofc2( 440, 310, 'analytics/pie1', '/', 'my_unique_div' )