質問

ビューごとに1つの成功したオープンフラッシュチャートを取得できます。私は現在、ビューごとに複数のオープンフラッシュチャートをサポートしようとしていますが、ソースコードは、両方の生成されたDivのIDが同じであることを示しています。

# 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

IDが同じであるため、 <%= @graph.html_safe %> graph2をレンダリングしようとして失敗しますが、Graph2はまったく表示されません。異なるIDを生成するには、OFC2を取得する必要があります。どうすればこれを達成できますか?

役に立ちましたか?

解決

たとえば、「Analytics/PIE1」の直後にコントローラーのIDを指定できることがわかります。 IDを具体的に指定することにより、同じ数を生成するアルゴリズムの可能性を排除するため、画像の表示に失敗します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top