[Rails] "Selecting" a calculated row / Using :select in the paginate method

Iván Vega Rivera
Fri, 06 Jan 2006 01:24:49 -0000

Hi,

I was trying to use the :select parameter to select a calculated row,
but it appears that the parameter is not picked up by the paginate method.

I want to add the following to the select statement:

timediff(now(), created_on) as age

So I tried:

@story_pages, @stories = paginate :stories, {:per_page => 10, :include
=> ''user'', :select => ''timediff(now(),
story.created_on) as story_age''}

... to no avail.

I know I can create a method named "age" for the story model that can
retrieve that calculation, but that''s a query for each element, so
it''s
very undesirable.

In case you''re wondering why I don''t calculate the
"age" inside my Rails
app, check this blog:

http://railsexpress.de/blog/articles/2005/11/09/accelerate-your-dates

If you know of a solution or alternative, I''ll greatly appreciate your
help.

Sincerely,
Ivan V.