# Alphabet

**URL:** <https://www.ruby-forum.com/t/alphabet/123295>\
**Category:** Rails\
**Created:** [December 16, 2007, 3:18am UTC](https://www.ruby-forum.com/t/alphabet/123295 "2007-12-16T03:18:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [December 16, 2007, 3:18am UTC](https://www.ruby-forum.com/t/alphabet/123295/1 "2007-12-16T03:18:49Z")

</div>

What is the best way to do this?

A Andover  
B Babson …  
C …  
. …  
. …  
. …

\<%= @letter = ‘a’ %\>  
\<% while @letter != ‘z’ %\>  
\<%= @letter %\>  
\<% for school in @schools %\>  
\<% if school.title.first == @letter %\>  
\<%= link\_to h (school.title), new\_school\_course\_path(school) %\>  
\<% end %\>  
\<% end %\>  
  
  
\<%= @letter.succ %\>  
  
  
\<% end %\>

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [December 16, 2007, 6:27am UTC](https://www.ruby-forum.com/t/alphabet/123295/2 "2007-12-16T06:27:36Z")

</div>

On Dec 15, 6:18 pm, edberner [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ```
> <% while @letter != 'z' %>
> <%= @letter %>
> <% for school in @schools %>
> <% if school.title.first == @letter %>
> <%= link_to h (school.title), new_school_course_path(school) %>
> <% end %>
> <% end %>
> <br/>
> <%= @letter.succ %>
> <br/>
> <% end %>
> 
> ```

i think this:  
[http://agilewebdevelopment.com/plugins/alphabar](http://agilewebdevelopment.com/plugins/alphabar)

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [December 16, 2007, 6:48am UTC](https://www.ruby-forum.com/t/alphabet/123295/3 "2007-12-16T06:48:37Z")

</div>

\<%  
(‘A’…‘Z’).each do |letter|  
this\_letter = @schools.select {|school| school.title =~ /^#{letter}/}  
%\>  
\<%= letter %\>  
\<% this\_letter.each do |schools| %\>  
\<%= link\_to h (school.title), new\_school\_course\_path(school) %\>  
\<% end %\>  
\<% end %\>

That’s just from memory, but it should work…

–Jeremy

On Dec 15, 2007 9:18 PM, edberner [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> \<%= @letter = ‘a’ %\>  
> \<% end %\>
> 
> >

–  
[http://www.jeremymcanally.com/](http://www.jeremymcanally.com/)

My books:  
Ruby in Practice

> **[Ruby in Practice](https://www.manning.com/books/ruby-in-practice)**
>
> Like Ruby itself, Ruby in Practice will make you more productive. The book shows you practical techniques and strategies for small projects and large-scale environments. A cookbook-style reference, it gives you concrete examples of systems...

My free Ruby e-book

> **[Site not found · DreamHost](http://www.humblelittlerubybook.com/)**
>
> The owner of this domain has not yet uploaded their website.

My blogs:

> **[Site not found · DreamHost](http://www.mrneighborly.com/)**
>
> The owner of this domain has not yet uploaded their website.

[http://www.rubyinpractice.com/](http://www.rubyinpractice.com/)

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [December 16, 2007, 4:30pm UTC](https://www.ruby-forum.com/t/alphabet/123295/4 "2007-12-16T16:30:29Z")

</div>

On Dec 16, 2007, at 12:47 AM, Jeremy McAnally wrote:

> > ```
> > <%= @letter.succ %>
> > 
> > ```
> 
> \<%= link\_to h (school.title), new\_school\_course\_path(school) %\>  
> Ruby in Practice  
> [Ruby in Practice](http://www.manning.com/mcanally/)
> 
> My free Ruby e-book  
> [http://www.humblelittlerubybook.com/](http://www.humblelittlerubybook.com/)
> 
> My blogs:  
> [http://www.mrneighborly.com/](http://www.mrneighborly.com/)  
> [http://www.rubyinpractice.com/](http://www.rubyinpractice.com/)

Or a little fancier:

\<% by\_letter = @schools.group\_by {|school| school.title[0,1]} -%\>

\<% ('A'..'Z').each do |letter| -%\> \<%= letter %\> \<% if by\_letter.has\_key?(letter) -%\> \<% by\_letter[letter].sort.each do |school| -%\> \<%= link\_to h(school.title), new\_school\_course\_path(school) %\>  
 \<% end -%\> \<% else -%\> (none) \<% end -%\> \<% end -%\>

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid
