这是我的后控制器
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
- 美国广播公司
- ssld
- 光盘
- 测试
预期产出
- 美国广播公司
- 光盘
- 测试
- 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
我认为只有颜色不起作用