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

Wilson Bilkovich wilsonb at gmail.com
Fri Jan 6 14:29:23 GMT 2006


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 at 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 at lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>


More information about the Rails mailing list