0

これが私のポストコントローラーです

  def refine id
    @sub_category_content = Post.where(sub_category_id: id).select('content')
    chained_array = []

    @sub_category_content.each do |content|
      form_chain = JSON.parse(content.content)
      chained_array << form_chain.values
    end

    @refine = chained_array.flatten.uniq

  end

これが私のアプリケーションコントローラーヘルパーです

def bypass_block refine, list
    refine = refine.include? list
    if refine
      'active'
    else
      'inactive'
    end
  end

これが私の見解です

<% label.dropdown_lists.each do |list| %>
    <li>
    <% style = bypass_block(@refine, list.list_name) %>
    <a class="<%= style %>">
        <input type="checkbox" class="<%= style %>" />
        <%= list.list_name %>
    </a>
    </li>
<% end %>

@refine は、配列を次のように処理します。["test","test123","tet22","abc","cds","sdd","cds"]

私のリスト名がループで次の値を渡すことを考慮してくださいtks, abc, ssld, cds, test

したがって、ループでは次のように出力されます

実際の出力

  1. tks
  2. abc
  3. ssld
  4. CD
  5. テスト

期待される出力

  1. abc
  2. CD
  3. テスト
  4. tks
  5. ssld

ここでそのようなソートを実行するにはどうすればよいですか。

編集 - 1

.sort はこれで機能しています

<% @models.sort.each do |product_model| %>
<% for_style = product_model.posts.any? ? 'active' : 'inactive' %>
<li class="auto-view">
<a class="<%= for_style %>">
<input type="checkbox" class="<%= for_style %>" />
<%= product_model.name %>
</a>
</li>
<% end %>

しかし、上記の配列の場合は機能していません

使用後@refine = chained_array.flatten.sort.uniq

ここに画像の説明を入力

私は色だけが機能していないと思います

4

1 に答える 1