これが私のポストコントローラーです
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
したがって、ループでは次のように出力されます
実際の出力
- tks
- abc
- ssld
- CD
- テスト
期待される出力
- abc
- CD
- テスト
- tks
- 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
私は色だけが機能していないと思います