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. 美国广播公司
  3. ssld
  4. 光盘
  5. 测试

预期产出

  1. 美国广播公司
  2. 光盘
  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

1

你能设置

@refine = chained_array.flatten.sort.uniq

在控制器中?

于 2013-10-31T20:23:21.143 回答