Forum: Ruby on Rails How to build index from model

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
A391f932c5bb61131c99f8543a07f697?d=identicon&s=25 astropanic (Guest)
on 2008-12-14 17:04
(Received via mailing list)
Hi,

I have a application where I have a book model.
I have a book controller, it has an action named "index_titles"

What should I write in the action of this controller to get a list
with the distinct first letters for each book model in the view ?

For example when I have five books:

"Amazing title"
"Bookworm is comming"
"Basic for beginners"
"Denial of service"
"UPS development guide"

I will have four links in the view with the anchors "A", "B", "D" and
"U" respectively.

I'm a experienced PHP developer, but I'm a newcommer to Ruby. What is
the optimal rails way to accomplish this ?

Regards
5170ca260dbd2cdfd5a887a4dba7636f?d=identicon&s=25 Jeremy Weiskotten (jeremy_weiskotten)
on 2008-12-14 19:46
astropanic wrote:
> Hi,
>
> I have a application where I have a book model.
> I have a book controller, it has an action named "index_titles"
>
> What should I write in the action of this controller to get a list
> with the distinct first letters for each book model in the view ?
>
> For example when I have five books:
>
> "Amazing title"
> "Bookworm is comming"
> "Basic for beginners"
> "Denial of service"
> "UPS development guide"
>
> I will have four links in the view with the anchors "A", "B", "D" and
> "U" respectively.
>
> I'm a experienced PHP developer, but I'm a newcommer to Ruby. What is
> the optimal rails way to accomplish this ?
>
> Regards

Something like this in your controller (assuming you're on Rails 2.1 or
later):

def index_titles
  @first_letters = Book.all(:select => 'title', :order => 'title').map {
|book| book.title.first }
end

This code fetches the title of every book (in alpha order) and extracts
just the first letter of each title. Be sure to have an index on the
title column.

Then iterate on @first_letters in your view to render a link to each
letter.

Hope that helps!

Jeremy
http://jeronrails.blogspot.com
A391f932c5bb61131c99f8543a07f697?d=identicon&s=25 astropanic (Guest)
on 2008-12-15 11:17
(Received via mailing list)
Thanks Man,
It works nice :)

Regards

On Dec 14, 7:46 pm, Jeremy Weiskotten <rails-mailing-l...@andreas-
This topic is locked and can not be replied to.