在嵌入式ruby上嵌套.each不打印任何东西

时间:2013-10-20 22:24:51

标签: javascript ruby-on-rails ruby nested

我遇到嵌入式ruby的一些问题。我正在尝试迭代一些变量,打印一些JavaScript代码。

这是以下代码:

<% color1 = '#ff0000' %>
<% color2 = '#00ff00' %>
<% color3 = '#ffff00' %>
<% i = 0 %>
<% j = 0 %>

<% @chapters.each do |chapter| %>
      sigInst.addNode('cap<%= chapter.reference %>',{
        label: 'cap <%= chapter.reference %>',
        color: '<%= j%2==0 ? color1 : color2 %>',
        x: <%= i = i %>,
        y: <%= i = i %>
      }).draw();
  <% i = i + 0.1 %>
  <% j=j+1 %>
<% end %>

<% @chapters.each do |chapter| %>
  <% chapter.decisions do |decision| %>
        sigInst.addEdge('cap<%= chapter.reference %>_cap<%= decision.destiny_num %>','cap<%= chapter.reference %>','cap<%= decision.destiny_num %>').draw();
  <% end %>
<% end %>

我正在使用Sigma js来实现图表。第一个.each出现在视图中,但第二部分不打印任何内容。发生了什么?感谢

1 个答案:

答案 0 :(得分:0)

你忘了对你的决定做.each

所以固定行是:<% chapter.decisions.each do |decision| %>

Ruby有一个令人讨厌的功能,允许你将块传递给任何东西,无论它是否使用它。所以在这种情况下,你只是将块传递给决策方法,它对它没有任何作用。