On 12/29/2011 07:28 AM, alvaro alves wrote: > i have a program who gets urls and category from pages on a certain > directory, i put this data on a hash like this example: > > pages{general =>[link1,link2)],producst => [link1, link2], services => > [link1, link2], downloads => [link1,link2]} > > I'm using haml on my view page > so the output code looks like this > > - pages.each do |category, links| > .span-6 > %h1= category > %ul > - links.each do |link| > %li= link > > so this give me the result: > Downloads General products services > link1 link1 link1 link1 > link2 link2 link2 link2 > > > i wish the general come to the left side and the downloads go to right, > is there any way to sort my hash? Sort your hash keys and then iterate over the sorted list in order to pull the values from the hash in the same order. I'm not familiar with HAML, but here is my guess as to what it should be using a hard coded ordered list of categories: - ordered_categories = %w(general products services downloads) - ordered_categories.each do |category| - links = pages[category] .span-6 %h1= category %ul - links.each do |link| %li= link end If your categories are more dynamic, you'll need to find a more creative way to sort them. The keys method on the pages variable will give you the keys of the hash as an array, and you can use the sort method of that to go wild. :-) -Jeremy