Ruby on Rails Friday, May 28, 2010

On 10 May 2010 10:09, Sebastian Kranz <lists@ruby-forum.com> wrote:
> how can I get the last entry (max published_at) for each author
> The result should be a array with news items 1,4,7

Have you looked at using the "group_by" method of Enumberable?

http://apidock.com/rails/Enumerable/group_by

You could use it to group by author_id and then select the latest
entry from each array.


In raw SQL:
SELECT id, author_id, max(published_at) FROM 'entries group by user_id

Or in Rails finder:
Entry.all(:select => "*, max(published_at)", :group => :author_id)


Have you read the ActiveRecord API docs? It's all in there....

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment