# Sort Categories by name

**URL:** <https://meta.discourse.org/t/sort-categories-by-name/62764>\
**Category:** Development\
**Created:** [15 Maggio 2017, 11:47pm UTC](https://meta.discourse.org/t/sort-categories-by-name/62764 "2017-05-15T23:47:35Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [16 Maggio 2017, 6:00pm UTC](https://meta.discourse.org/t/sort-categories-by-name/62764/3 "2017-05-16T18:00:39Z")

</div>

Thanks, @david! That was a huge help.

This will find all categories that match `search` and sort them and the subcategories that they contain.

```ruby
  def sort_matching_subcategories(search)
    categories = Category.where("name like ?", search)
    position = 100
    categories.order(:name).each do |cat|
      position += 1
      cat.position = position
      cat.save!()
      c_position = 0
      children = Category.where(:parent_category_id=>cat.id)
      children.order(:name).each do |c|
        c_position += 1
        c.position = c_position
        c.save!()
      end
    end
  end

```

---

_[View the full topic](https://meta.discourse.org/t/sort-categories-by-name/62764)._
