Question

Je peux obtenir un graphique réussie Open Flash par vue. J'essaie maintenant de prendre en charge plusieurs graphiques Open Flash par vue, mais le code source montre que les ids pour les deux divs générés sont les mêmes:

# 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

Parce que les ids sont les mêmes, <%= @graph.html_safe %> essaie de rendre graph2 et échoue, et graph2 n'affiche pas du tout. Je dois obtenir OFC2 pour générer différents ids. Comment puis-je y arriver?

Était-ce utile?

La solution

Il se avère que vous pouvez spécifier un identifiant dans votre contrôleur juste après « analyse / pie1 », par exemple. En spécifiant l'ID spécifique, nous éliminons toute chance d'un algorithme générant le même nombre et donc ne pas montrer les images.

Exemple: @graph = ofc2( 440, 310, 'analytics/pie1', '/', 'my_unique_div' )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top