This would probably be better as a scope on the task model. Usage would look something like this "user.tasks.recent_activity". This does two things: 1) makes it so it can be chained in scopes for other purposes, 2) keeps all of the status checking and task specific logic in the task model so user.rb doesn't have to know how tasks work.