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

Wilson Bilkovich
Fri, 06 Jan 2006 14:29:28 -0000

Check out this code snippet:
http://bigbold.com/snippets/posts/show/389
Even better is the updated version in ''toolmantim''s''
post at the bottom.

On 1/5/06, Iv?n Vega Rivera <ivanvega@gmail.com>
wrote:
> 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.
>
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>