このコードは、現在のディメンション メンバーと次のディメンション メンバーの名前を出力することを期待しています。ここで、next は各ディメンション メンバーの absorder 属性によって定義されます。
<% @dimension_members.each do |dm| %>
<p><%= dm.name %></p>
<p><%= DimensionMember.where(:absorder => dm.absorder+1).name %></p>
<% end %>
代わりに、コードは現在のディメンション メンバーの名前を返し、次にすべての次のメンバーの "DimensionMember" を返します。
次のコードは を生成します#<ActiveRecord::Relation:0x3f952e0>
:
<% @dimension_members.each do |dm| %>
<p><%= dm.name %></p>
<p><%= DimensionMember.where(:absorder => dm.absorder+1) %></p>
<% end %>
配列内の次のメンバーを返すもっと簡単な方法があると想像する必要がありますが、うまく機能させることができません。このアイデアを念頭に置いて次のコードを試しましたが、次のようになります#<DimensionMember:0x3f943f8>
。
<% @dimension_members.each do |dm| %>
<p><%= dm.name %></p>
<p><%= @dimension_members[dm.absorder+1] %></p>
<% end %>
最後に、私はこれを試しました:
<% @dimension_members.each do |dm| %>
<p><%= dm.name %></p>
<p><%= @dimension_members[dm.absorder+1].name %></p>
<% end %>
しかし、これはエラーを返します:
undefined method 'name' for nil:NilClass
では、next が特定の属性 absorder によって定義されている次の dimension_member を取得するにはどうすればよいでしょうか?