我正在使用 Ruby on Rails 从我的 mySQL 数据库获取数据:
def all_specs
Specialization.order("title ASC").all;
end
现在,我想像这样在 View 文件中对这些数据进行排序:
<div class="nav-column">
<h3>A</h3>
<ul class="submenu">
<li><a href="#">All data that has title that starts with A</a></li>
</ul>
</div>
<div class="nav-column">
<h3>A</h3>
<ul class="submenu">
<li><a href="#">All data that has title that starts with B</a></li>
</ul>
</div>
and so on from A-Z
我怎样才能做到这一点?
最佳答案
您可以对数据进行分组:
specs = Specialization.order("title ASC")
specs_by_first_letter = specs.group_by { |spec| spec.title[0] }
这会返回一个散列,如下所示:
{
"A" => [<Specialization title:"A...">, <Specialization title:"A...">],
"B" => [<Specialization title:"B...">, <Specialization title:"B...">],
...
"Z" => [<Specialization title:"Z...">, <Specialization title:"Z...">]
}
遍历这个散列应该很容易。请注意,某些字母可能会丢失。
关于ruby-on-rails - Rails - 如何创建字母系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365495/