0

<% @sp_references.each do |sp_ref| %>
<% sp_ref.all_references.each_with_index do |tax_ref, i| %> <%if (tax_ref.reference.uniq) && (tax_ref.reference !~ /emend$/i) %> <%= tax_ref.reference %> <%end%> <%end%> <%end%>


tax_ref.reference で個別の要素を取得するこの「uniq」オプションは機能していません。「未定義のメソッド「uniq」が表示されます #

4

3 に答える 3

0

uniq は、列挙可能なオブジェクト (配列) のメソッドです。したがって、tax_ref の参照オブジェクトで呼び出すことはできません。

代わりに、次のように sp_ref.all_references で呼び出す必要があります。sp_ref.all_references.uniq.each

This SO Questionには、属性のみが重複している(一意ではない)場合に、重複オブジェクトを除外するための提案がいくつかあります。

于 2010-11-29T15:41:16.750 に答える
0

tax_ref.reference私には配列ではないようです。uniq配列で呼び出す必要があります。代わりにこれを試してください:

<% sp_ref.all_references.keys.uniq.each do |tax_ref| %>
    <%if (tax_ref.reference !~ /emend$/sp_ref.all_references[tax_ref]) %>
        <%= tax_ref.reference %>
    <%end%>
<% end %>
于 2010-11-29T15:40:20.597 に答える
0
<%arr = Array.new %> <% @sp_references.each do |sp_ref| %> <% sp_ref.all_references.each_with_index do |tax_ref, i| %>  <%if (tax_ref.reference !~ /emend$/i) %>  <% arr.push("#{tax_ref.reference}") %> <%end%>  <%end%>  <%end%> <%= arr.uniq %>

わたしにはできる。

于 2010-12-01T08:13:27.297 に答える